DataFrame是提供了很多非常强大的表格管理函数,可以方便的处理表格型数据,DataFrame可以看成每一列都是一个Series组成的表格
DataFrame初始化
import pandas as pd
a=pd.DataFrame({'one':[1,2,3,4],'two':[5,6,7,8]})
>>> one two
0 1 5
1 2 6
2 3 7
3 4 8
#指定index
a=pd.DataFrame({'one':[1,2,3,4],'two':[5,6,7,8]},index=['a','b','c','d'])
>>>one two
a 1 5
b 2 6
c 3 7
d 4 8
DataFrame常用函数
a=pd.DataFrame({'one':[1,2,3,4],'two':[5,6,7,8]})
>>>one two
a 1 5
b 2 6
c 3 7
d 4 8
#转置
a.T
>>> 0 1 2 3
one 1 2 3 4
two 5 6 7 8
#获取所有行索引
a.index >>> Index(['a', 'b', 'c', 'd'], dtype='object')
#获取列索引
a.columns >>> Index(['one', 'two'], dtype='object')
#获取所有的值
a.values
>>> array([[1, 5],
[2, 6],
[3, 7],
[4, 8]], dtype=int64)
#获取每一列的和
a.sum()
>>>one 10
two 26
#获取每一行的和
a.sum(axis=1)
>>> a 5.0
b 8.0
c 10.0
d 12.0
DataFrame排序
a=pd.DataFrame({'one':[1,2,3,4],'two':[5,6,7,8]})
>>> one two
0 1 5
1 2 6
2 3 7
3 4 8
#按第一列降序排序
a.sort_values(by='one',ascending=False)
>>>one two
3 4 8
2 3 7
1 2 6
0 1 5
#按行降序排序
a.sort_values(by='a',ascending=False,axis=1)
>>>two one
a 5 1
b 6 2
c 7 3
d 8 4
#按标签降序排序
a.sort_index(ascending=False)
>>>one two
d 4 8
c 3 7
b 2 6
a 1 5
DataFrame索引
a=pd.DataFrame({'one':[1,2,3,4],'two':[5,6,7,8]},index=['a','b','c','d'])
>>> one two
a 1 5
b 2 6
c 3 7
d 4 8
#获取第一列,返回的是一个Series对象
a['one']
>>> a 1
b 2
c 3
d 4
#获取第2列、第2个元素
a['two']['b'] >>> 6 #通过标签索引,只能先获取列返回Series,先列后行
a.loc['b','two'] >>> 6 #通过标签索引,先行后列
a.iloc[1,1] >>> 6 #通过下标索引,先行后列
#获取第一行,返回一个Series
a.loc['a',:]
a.iloc[0,:]
>>> one 1
two 5
#切片索引
a.loc['a':"c","one"]
>>> a 1
b 2
c 3
#花式索引
a.loc[['a','c'],"two"]
>>> a 5
c 7
DataFrame缺失值处理
a=pd.DataFrame({'one':[np.nan,2,3,4],'two':[5,6,7,8]},index=['a','b','c','d'])
>>> one two
a NaN 5
b 2.0 6
c 3.0 7
d 4.0 8
#填充成该列的平均数
a.fillna(a.mena())
>>> one two
a 3.0 5
b 2.0 6
c 3.0 7
d 4.0 8
#有nan的整行丢弃
a.drapna()
>>> one two
b 2.0 6
c 3.0 7
d 4.0 8
#有nan的整列丢弃
a.dropna(axis=1)
>>>two
a 5
b 6
c 7
d 8