Python之DataFrame基础篇

DataFrame 表示矩阵数据表,有行索引和列索引。

DataFrame相当于有表格,有行表头和列表头

a=pd.DataFrame(np.random.rand(4,5),index=list("ABCD"),columns=list('abcde'))
print(a)

DataFrame基本操作

增加列或修改列

a['f']=[1,2,3,4]
a['e']=10
print(a)

增加行或修改行

a.ix['D']=10
print(a)

合并

S=pd.DataFrame(np.random.rand(4,6),index=list('EFGH'),columns=list('abcdef'))
a=a.append(S)
print(a)

切片

print(a[['b','e']]) #取'b','e'列
print(a.loc['A':'D',['a','c','f']]) #取'A'-'D'行'a','c','f'列

减少行或减少列

a=a.drop(['C','D']) #删除'C'行和'D'
print(a)
a=a.drop('a',axis=1) #删除'a'列,axis=0表示行,axis=1表示列
print(a)

缺省值处理

a.iloc[2,3]=None #取第三行第4列值设为None
a.iloc[4,0]=None #取第五行第1列值设为None
print(a)
a=a.fillna(5)  #缺省值处(即NaN处填充为5)
print(a)
#缺省值去行即有缺省值的把这一行都去掉
a.iloc[2,3]=None
a.iloc[4,0]=None
print(a)
a=a.dropna() #删除缺省值为NaN的行
print(a)

构建方式

data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
'year' : [2000, 2001, 2002, 2001, 2001, 2003],
'pop': [1.5, 1.7,  3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
print(frame)
'''
    state  year  pop
0    Ohio  2000  1.5
1    Ohio  2001  1.7
2    Ohio  2002  3.6
3  Nevada  2001  2.4
4  Nevada  2001  2.9
5  Nevada  2003  3.2
'''

对于大型 DataFrame,head 方法只选出前5行

frame.head()
'''
    state  year  pop
0    Ohio  2000  1.5
1    Ohio  2001  1.7
2    Ohio  2002  3.6
3  Nevada  2001  2.4
4  Nevada  2001  2.9
'''

指定顺序

print(pd.DataFrame(data, columns=['year', 'state', 'pop']))
'''
   year   state  pop
0  2000    Ohio  1.5
1  2001    Ohio  1.7
2  2002    Ohio  3.6
3  2001  Nevada  2.4
4  2001  Nevada  2.9
5  2003  Nevada  3.2
'''

传的列不在字典中

frame2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],
index=['one', 'two', 'three', 'four', 'five', 'six'])
print(frame2)
'''
       year   state  pop debt
one    2000    Ohio  1.5  NaN
two    2001    Ohio  1.7  NaN
three  2002    Ohio  3.6  NaN
four   2001  Nevada  2.4  NaN
five   2001  Nevada  2.9  NaN
six    2003  Nevada  3.2  NaN
'''

行也可以通过位置或特殊属性 loc 进行选取

print(frame2.loc['three'])

year     2002
state    Ohio
pop       3.6
debt      NaN
Name: three, dtype: object

调换行和列

print(frame.T)

自动选择适合所有列的类型

print(frame2.values)

array([[2000, 'Ohio', 1.5, nan],
       [2001, 'Ohio', 1.7, -1.2],
       [2002, 'Ohio', 3.6, nan],
       [2001, 'Nevada', 2.4, -1.5],
       [2001, 'Nevada', 2.9, -1.7],
       [2003, 'Nevada', 3.2, nan]], dtype=object)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值