DataFrame
一、何为DataFrame?
- DataFrame是一个表格型的数据结构,它由一组有序的列组成;它有行索引,也有列索引,可以被看做由Series组成的字典(共用同一个索引)
二、如何创建DataFrame?
import pandas as pd
df = pd.DataFrame([[1,2],[3,4]])
df1 = pd.DataFrame([[1,2],[3,4]],columns=['zhang','li'],index=['a','b'])
df2 = pd.DataFrame({'zhang':[1,3],'li':[2,4]})
df3 = pd.DataFrame({'zhang':[1,3],'li':[2,4]},columns=['zhang','li','hu'],index=['a','b'])
df4 = pd.DataFrame({'zhang':{'a':1,'b':3},'li':{'a':2,'b':4}},columns=['zhang','li','hu'],index=['a','b','c'])
三、DataFrame的属性
-
values
属性:df.values
-
index
属性:df.index
-
columns
属性:df.columns
-
name
属性:df.columns.name
,df.index.name
四、DataFrame的选取
- 获取整列:
df4.zhang
(推荐)、df4['zhang']
、df4.loc[:,'zhang']
、df4.iloc[:,0]
、df4.loc[:,['zhang','li']]
、df4.iloc[:,:2]
、df4[['zhang','li']]
- 获取整行:
df4.loc['a',:]
、df4.iloc[0,:]
、df4.loc[['a','b'],:]
、df4.loc['a':'b',:]
、df4.iloc[:2,:]
、df4[:2]
(常省略表示所有列的':'号)
- 获取子DataFrame:
df4.loc['a':'b','zhang':'li']
、df4.iloc[:2,:2]
- 获取元素值:
df4.loc['a','zhang']
、df4.iloc[0,0]
- 基于条件获取:
df4[df4 < 3]
、df4[df4.zhang < 2]
(基于列内容获取子DataFrame)
五、DataFrame的索引字段ix
- 近似于集成了索引字段
loc
、iloc
以及条件获取的功能
六、DataFrame的修改
- 列的修改:
df3.hu = 3
、df3.hu = [3,5]
(标量或序列)
- 行的修改:
df3.ix['a'] = 6
、df3.ix['a'] = [6,7,8]
(标量或序列)
- 修改列/行中部分数据可以传入特定索引的Series
- 为不存在的列赋值会创造出新列:
df3['wang'] = 8
;注意:df3.wang = 8
不能创造新列
- 为不存在的行赋值会创造出新行:
df3.ix['c'] = 9
- 删除某列:
del df3['wang']
、df3.drop('wang',axis=1)
;注意:del df3.wang
不能删除某列
- 删除某行:
df3.drop('c')
七、 两个绘图小知识点
-
Series
、DataFrame
的index
默认被用来绘制X轴,可通过use_False=False
禁用该功能
-
DataFrame
列的name
被用作图例的标题