Series序列,一维表数据操作结构。
使用python的普通列表来创建Series数据结构
import pandas as pd
import numpy as np
data = [1,2,3,4,5]
s = pd.Series(data,index=[1000,1001,1002,1003,1004])
print(s)
********
1000 1
1001 2
1002 3
1003 4
1004 5
********
使用numpy的ndarray创建Series
import pandas as pd
import numpy as np
data = np.array([1,2,3,4,5])
s = pd.Series(data,index=[1000,1001,1002,1003,1004])
print(s)
如果不指定index参数的列表,则索引号默认从0开始递增。
*********
1000 1
1001 2
1002 3
1003 4
1004 5
*********
使用dict字典数据来初始化Series
import pandas as pd
d={'a':1,'b':2,'c':3}
s=pd.Series(d)
print(s)
*******
a 1
b 2
c 3
*******
此时没有指定Index,则默认使用字典的keys来初始化index序列,如果指定index序列,则按照指定的序列来排序。
如何访问series数据
通过python列表(list)的位置索引访问方式,通过标签的方式访问,s['1000']的值是1。
也支持切片,比如取前两位s[0:2]
1000 1
1001 2
也可以用标签列表来同时访问多个 s[[1000,1001,1002]]
empty可以判断Series是否为空 s.empty,返回False即为非空
返回部分数据,s.head(5)返回前五行,s.tail(5)返回后五行。
isnull()和notnull()判断是否空值和是否不是空值。
DataFrame
DataFrame 一个表格型的数据结构,既有行标签(index),又有列标签(columns),它也被称异构数据表,所谓异构,指的是表格中每列的数据类型可以不同,比如可以是字符串、整型或者浮点型等。
import pandas as pd
pd.DataFrame(data,index,column,dtype,copy)
![](https://i-blog.csdnimg.cn/blog_migrate/62934dff5048ef7a246f751ddc866f54.png)
创建一个空的DataFrame
import pandas as pd
df=pd.DataFrame()
使用list来创建DataFrame
import pandas as pd
data=[1,2,3]
df=pd.DataFrame(data)
0
0 1
1 2
2 3
使用二维列表来初始化DataFrame
import pandas as pd
import numpy as np
data=[[1,'a'],[2,'b'],[3,'c']]
df=pd.DataFrame(data,columns=['a1','a2'])
print(df)
a1 a2
0 1 a
1 2 b
2 3 c
使用字典来创建DataFrame
import pandas as pd
import numpy as np
data={'name':['aa','bb','cc','dd'],'age':[10,20,30,40]}
df=pd.DataFrame(data)
print(df)
name age
0 aa 10
1 bb 20
2 cc 30
3 dd 40
使用列表中嵌套字典来创建DataFrame
import pandas as pd
import numpy as np
data=[{'a':1,'b':2,'c':3},{'a':11,'b':22,'c':33}]
df=pd.DataFrame(data)
print(df)
a b c
0 1 2 3
1 11 22 33
使用列索引可以访问一列的数据df['a']
#新增一列
df['d']=[4,44]
print(df)
a b c d
idx1 1 2 3 4
idx2 11 22 33 44
#新增一列
df.insert(0,column='d',value=[4,44])
print(df)
d a b c
idx1 4 1 2 3
idx2 44 11 22 33
使用insert操作来插入一列数据,第一个参数可以控制插入列的位置,传0即为插入第一列
使用del或者pop可删除列,del df['d'],df.pop('d')
通过行标签访问数据
df.loc['idx1']
d 4
a 1
b 2
c 3
通过行索引访问数据
df.iloc[0]
d 4
a 1
b 2
c 3
通过append函数添加一行数据
df_add=pd.DataFrame([{'d':444,'a':111,'b':222,'c':333}],index=['idx3'])
df=df.append(df_add)
print(df)
d a b c
idx1 4 1 2 3
idx2 44 11 22 33
idx3 444 111 222 333
通过df.drop('idx1')可删除行标签是idx1的数据行
![](https://i-blog.csdnimg.cn/blog_migrate/6ca166677c2e6aed0a81ca8f29209091.png)
![](https://i-blog.csdnimg.cn/blog_migrate/75e44d84dd6807a0cb61c4f97091f0cf.png)
参数axis=0是垂直方向计算,axis=1是水平方向计算
pandas读取csv文件
pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer',names=None, index_col=None, usecols=None)
使用index_col自定义索引,names指定表头,header表示表头所在的行号,skiprows指定跳过的行数。
使用pd.to_csv()将数据以csv的格式输出,参数sep指定分隔符,默认为','