python-pandas创建Series数据类型的操作

1.什么是pandas

2.查看pandas版本信息

print(pd.__version__)

输出:

0.24.1

3.常见数据类型

常见的数据类型:

- 一维: Series

- 二维: DataFrame

- 三维: Panel …

- 四维: Panel4D …

- N维: PanelND …

4.pandas创建Series数据类型对象

1). 通过列表创建Series对象

array = ["粉条", "粉丝", "粉带"]
# 如果不指定索引, 默认从0开始;
s1 = pd.Series(data=array)
print(s1)
# 如果不指定索引, 默认从0开始;
ss1 = pd.Series(data=array, index=['A', 'B', 'C'])
print(ss1)

输出:

0    粉条
1    粉丝
2    粉带
dtype: object
A    粉条
B    粉丝
C    粉带
dtype: object

2). 通过numpy的对象Ndarray创建Series;

n = np.random.randn(5)   # 随机创建一个ndarray对象;
s2 = pd.Series(data=n)
print(s2)
# 修改元素的数据类型;
ss2 = s2.astype(np.int)
print(ss2)

输出:

0   -1.649755
1    0.607479
2    0.943136
3   -1.794060
4    1.569035
dtype: float64
0   -1
1    0
2    0
3   -1
4    1
dtype: int64

3). 通过字典创建Series对象;

dict = {string.ascii_lowercase[i]:i for i in range(10)}
s3 = pd.Series(dict)
print(s3)

输出:

a    0
b    1
c    2
d    3
e    4
f    5
g    6
h    7
i    8
j    9
dtype: int64

5.Series基本操作

共同部分:

import pandas as pd
import numpy as np
import  string

array = ["粉条", "粉丝", "粉带"]
s1 = pd.Series(data=array)
print(s1)

输出:

0    粉条
1    粉丝
2    粉带
dtype: object

1). 修改Series索引.index

print(s1.index) #输出:RangeIndex(start=0, stop=3, step=1)
s1.index = ['A', 'B', 'C']
print(s1) 

输出:

A    粉条
B    粉丝
C    粉带
dtype: object

2). Series纵向拼接.append

s1.index = ['A', 'B', 'C']
array = ["粉条", "粉丝", "粉带"]
# 如果不指定索引, 默认从0开始;
s2 = pd.Series(data=array)
s3 = s1.append(s2)
print(s3)

输出:

A    粉条
B    粉丝
C    粉带
0    粉条
1    粉丝
2    粉带
dtype: object

3). 删除指定索引对应的元素.drop(‘index')

s3 = s3.drop('C')  # 删除索引为‘C'对应的值;
print(s3)

输出:

A    粉条
B    粉丝
0    粉条
1    粉丝
2    粉带
dtype: object

4). 根据指定的索引查找元素

print(s3['B'])   #粉丝
s3['B'] = np.nan #索引B处的值替换为缺失值
print(s3)

输出:

A     粉条
B    NaN
0     粉条
1     粉丝
2     粉带
dtype: object

5). 切片操作 — 同列表

print(s3[:2])  #显示前两个元素
print(s3[::-1]) #逆序
print(s3[-2:])  # 显示最后两个元素

输出:

A     粉条
B    NaN
dtype: object
-------------------------
2     粉带
1     粉丝
0     粉条
B    NaN
A     粉条
dtype: object
-------------------------
1    粉丝
2    粉带
dtype: object

6.Series运算

先设置两个Series对象:

import pandas as pd
import numpy as np
import  string

s1  = pd.Series(np.arange(5), index=list(string.ascii_lowercase[:5]))
s2  = pd.Series(np.arange(2, 8), index=list(string.ascii_lowercase[2:8]))

print(s1)
print(s2)

按照对应的索引进行计算, 如果索引不同,则填充为Nan;

1).加法add

print(s1 + s2)
print(s1.add(s2))

输出:

a    NaN
b    NaN
c    4.0
d    6.0
e    8.0
f    NaN
g    NaN
h    NaN
dtype: float64

2).减法sub

print(s1 - s2)
print(s1.sub(s2))

输出:

a    NaN
b    NaN
c    0.0
d    0.0
e    0.0
f    NaN
g    NaN
h    NaN
dtype: float64

3).乘法mul

print(s1 * s2)
print(s1.mul(s2))

输出:

a     NaN
b     NaN
c     4.0
d     9.0
e    16.0
f     NaN
g     NaN
h     NaN
dtype: float64

4).除法div

print(s1 / s2)
print(s1.div(s2))

输出:

a    NaN
b    NaN
c    1.0
d    1.0
e    1.0
f    NaN
g    NaN
h    NaN
dtype: float64

5).求中位数median

print(s1.median())

输出:

2.0

6).求和sum

print(s1.sum())

输出:

10

7).最大值max

print(s1.max())

输出:

4

8).最小值min

print(s1.min())

输出:

0

7.特殊的where方法

series中的where方法运行结果和numpy中完全不同

import pandas as pd
import numpy as np
import string
s1 = pd.Series(np.arange(5), index=list(string.ascii_lowercase[:5]))
print(s1)

输出:

a    0
b    1
c    2
d    3
e    4
dtype: int64
print(s1.where(s1 > 3))

大于3的显示,不大于3的为NaN

# 对象中小于3的元素赋值为10;
print(s1.where(s1 > 3, 10))

# 对象中大于3的元素赋值为10;
print(s1.mask(s1 > 3, 10))

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • python中pandas.read_csv()函数的深入讲解

    这里将更新最新的最全面的read_csv()函数功能以及参数介绍,参考资料来源于官网. pandas库简介 官方网站里详细说明了pandas库的安装以及使用方法,在这里获取最新的pandas库信息,不过官网仅支持英文. pandas是一个Python包,并且它提供快速,灵活和富有表现力的数据结构.这样当我们处理"关系"或"标记"的数据(一维和二维数据结构)时既容易又直观. pandas是我们运用Python进行实际.真实数据分析的基础,同时它是建立在NumPy之上的

  • python pandas合并Sheet,处理列乱序和出现Unnamed列的解决

    使用python中的pandas,xlrd,openpyxl库完成合并excel中指定sheet的操作 # -*- coding: UTF-8 -*- import xlrd import pandas as pd from pandas import DataFrame from openpyxl import load_workbook #表格位置 excel_name = '1.xlsx' # 获取workbook中所有的表格 wb = xlrd.open_workbook(excel_n

  • Python3 pandas.concat的用法说明

    前面给大家分享了pandas.merge用法详解,这节分享pandas数据合并处理的姊妹篇,pandas.concat用法详解,参考利用Python进行数据分析与pandas官网进行整理. pandas.merge参数列表如下图,其中只有objs是必须得参数,另外常用参数包括objs.axis.join.keys.ignore_index. 1.pd.concat([df1,df2,df3]), 默认axis=0,在0轴上合并. 2.pd.concat([df1,df4],axis=1)–在1轴

  • python 使用pandas同时对多列进行赋值

    如dataframe data1['月份']=int(month) #加入月份和企业名称 data1['企业']=parmentname 可以增加单列,并赋值,如果想同时对多列进行赋值 data1['月份','企业']=int(month) , parmentname #加入月份和企业名称 会出错 ValueError: Length of values does not match length of index data[['合计','平均']]='数据','月份' 类似这样的,也无效 Ke

  • python之 matplotlib和pandas绘图教程

    不得不说使用python库matplotlib绘图确实比较丑,但使用起来还算是比较方便,做自己的小小研究可以使用.这里记录一些统计作图方法,包括pandas作图和plt作图. 前提是先导入第三方库吧 import pandas as pd import matplotlib.pyplot as plt import numpy as np 然后以下这两句用于正常显示中文标签什么的. plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签

  • python基于Pandas读写MySQL数据库

    要实现 pandas 对 mysql 的读写需要三个库 pandas sqlalchemy pymysql 可能有的同学会问,单独用 pymysql 或 sqlalchemy 来读写数据库不香么,为什么要同时用三个库?主要是使用场景不同,个人觉得就大数据处理而言,用 pandas 读写数据库更加便捷. 1.read_sql_query 读取 mysql read_sql_query 或 read_sql 方法传入参数均为 sql 语句,读取数据库后,返回内容是 dateframe 对象.普及一下

  • Python基础之pandas数据合并

    一.concat concat函数是在pandas底下的方法,可以将数据根据不同的轴作简单的融合 pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False) axis: 需要合并链接的轴,0是行,1是列join:连接的方式 inner,或者outer 二.相同字段的表首尾相接 #现将表构成l

  • Python数据分析之pandas函数详解

    一.apply和applymap 1. 可直接使用NumPy的函数 示例代码: # Numpy ufunc 函数 df = pd.DataFrame(np.random.randn(5,4) - 1) print(df) print(np.abs(df)) 运行结果: 0         1         2         3 0 -0.062413  0.844813 -1.853721 -1.980717 1 -0.539628 -1.975173 -0.856597 -2.612406

  • 关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题

    问题描述 使用pandas库的read_excel()方法读取外部excel文件报错, 截图如下 好像是缺少了什么方法的样子 问题分析 分析个啥, 水平有限, 直接面向stackoverflow编程 https://stackoverflow.com/questions/64264563/attributeerror-elementtree-object-has-no-attribute-getiterator-when-trying 我找到了下面的这几种说法 根据国外大神的指点, 我得出了这些

  • python-pandas创建Series数据类型的操作

    1.什么是pandas 2.查看pandas版本信息 print(pd.__version__) 输出: 0.24.1 3.常见数据类型 常见的数据类型: - 一维: Series - 二维: DataFrame - 三维: Panel - - 四维: Panel4D - - N维: PanelND - 4.pandas创建Series数据类型对象 1). 通过列表创建Series对象 array = ["粉条", "粉丝", "粉带"] # 如

  • python pandas中DataFrame类型数据操作函数的方法

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数据及属性 df_obj = DataFrame() #创建DataFrame对象 df_obj.dtypes #查看各行的数据格式 df_obj['列名'].astype(int)#转换某列的数据类型 df_obj.head() #查看前几行的数据,默认前5行 df_obj.tail() #查看后几

  • python pandas创建多层索引MultiIndex的6种方式

    目录 引言 pd.MultiIndex.from_arrays() pd.MultiIndex.from_tuples() 列表和元组是可以混合使用的 pd.MultiIndex.from_product() pd.MultiIndex.from_frame() groupby() pivot_table() 引言 在上一篇文章中介绍了如何创建Pandas中的单层索引,今天给大家带来的是如何创建Pandas中的多层索引. pd.MultiIndex,即具有多个层次的索引.通过多层次索引,我们就可

  • Python+pandas编写命令行脚本操作excel的tips详情

    目录 一.python logging日志模块简单封装 二.pandas编写命令行脚本操作excel的小tips 1.tips 1.1使用说明格式 1.2接收操作目录方法 1.3检测并读取目录下的excel,并限制当前目录只能放一个excel 1.4备份excel 1.5报错暂停,并显示异常信息 1.6判断excel是否包含某列,不包含就新建 1.7进度展示与阶段保存 一.python logging日志模块简单封装 项目根目录创建 utils/logUtil.py import logging

  • Python Pandas 修改表格数据类型 DataFrame 列的顺序案例

    目录 一.修改表格数据类型 DataFrame 列的顺序 1.1主要知识点 1.2创建 python 文件 1.3运行结果 二.Pandas 如何统计某个数据列的空值个数 2.1主要知识点 2.2创建 python 文件 2.3运行结果 三.Pandas如何移除包含空值的行 3.1主要知识点 3.2创建 python 文件 3.3运行结果 四.Pandas如何精确设置表格数据的单元格的值 4.1主要知识点 4.2创建 python 文件 4.3运行结果 一.修改表格数据类型 DataFrame

  • python pandas 对series和dataframe的重置索引reindex方法

    reindex更多的不是修改pandas对象的索引,而只是修改索引的顺序,如果修改的索引不存在就会使用默认的None代替此行.且不会修改原数组,要修改需要使用赋值语句. series.reindex() import pandas as pd import numpy as np obj = pd.Series(range(4), index=['d', 'b', 'a', 'c']) print obj d 0 b 1 a 2 c 3 dtype: int64 print obj.reinde

  • pandas创建series的三种方法小结

    目录 pandas创建series方法 创建方法一 Series 创建方法二 Series 创建方法三 Pandas的Series常用方法 1. 创建Series 2. Series追加 3. Series删除 4. Series改 5. Series查 pandas创建series方法 print("====创建series方法一===") dic={"a":1,"b":2,"c":3,"4":4} s=

  • python批量创建变量并赋值操作

    一,简单的情况: 核心是exec函数,exec函数可以执行我们输入的代码字符串.exec函数的简单例子: exec ('print "hello world"') hello world 可以很清晰的看到,我们给exec传入一个字符串'print "hello world"',exec是执行字符串里面的代码print "hello world".根据这个特性,我们可以用占位符实现我们对变量的定义,如: exec ("temp%s=1&q

  • python pandas dataframe 行列选择,切片操作方法

    SQL中的select是根据列的名称来选取:Pandas则更为灵活,不但可根据列名称选取,还可以根据列所在的position(数字,在第几行第几列,注意pandas行列的position是从0开始)选取.相关函数如下: 1)loc,基于列label,可选取特定行(根据行index): 2)iloc,基于行/列的position: 3)at,根据指定行index及列label,快速定位DataFrame的元素: 4)iat,与at类似,不同的是根据position来定位的: 5)ix,为loc与i

  • python pandas dataframe 按列或者按行合并的方法

    concat 与其说是连接,更准确的说是拼接.就是把两个表直接合在一起.于是有一个突出的问题,是横向拼接还是纵向拼接,所以concat 函数的关键参数是axis . 函数的具体参数是: concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verigy_integrity=False) objs 是需要拼接的对象集合,一般为列表或者字典 axis=0 是

随机推荐