Pandas:DataFrame对象的基础操作方法
DataFrame对象的创建,修改,合并
importpandasaspd importnumpyasnp
创建DataFrame对象
#创建DataFrame对象 df=pd.DataFrame([1,2,3,4,5],columns=['cols'],index=['a','b','c','d','e']) printdf
cols a1 b2 c3 d4 e5
df2=pd.DataFrame([[1,2,3],[4,5,6]],columns=['col1','col2','col3'],index=['a','b']) printdf2
col1col2col3 a123 b456
df3=pd.DataFrame(np.array([[1,2],[3,4]]),columns=['col1','col2'],index=['a','b']) printdf3
col1col2 a12 b34
df4=pd.DataFrame({'col1':[1,3],'col2':[2,4]},index=['a','b']) printdf4
col1col2 a12 b34
创建DataFrame对象的数据可以为列表,数组和字典,列名和索引为列表对象
基本操作
#DataFrame对象的基本操作 df2.index
Index([u'a',u'b'],dtype='object')
df2.columns
Index([u'col1',u'col2',u'col3'],dtype='object')
#根据索引查看数据 df2.loc['a'] #索引为a这一行的数据 #df2.iloc[0]跟上面的操作等价,一个是根据索引名,一个是根据数字索引访问数据
col11 col22 col33 Name:a,dtype:int64
printdf2.loc[['a','b']]#访问多行数据,索引参数为一个列表对象
col1col2col3 a123 b456
printdf.loc[df.index[1:3]]
cols b2 c3
#访问列数据 printdf2[['col1','col3']]
col1col3 a13 b46
计算
#DataFrame元素求和 #默认是对每列元素求和 printdf2.sum()
col15 col27 col39 dtype:int64
#行求和 printdf2.sum(1)
a6 b15 dtype:int64
#对每个元素乘以2 printdf2.apply(lambdax:x*2)
col1col2col3 a246 b81012
#对每个元素求平方(支持ndarray一样的向量化操作) printdf2**2
col1col2col3 a149 b162536
列扩充 #对DataFrame对象进行列扩充 df2['col4']=['cnn','rnn'] printdf2
col1col2col3col4 a123cnn b456rnn
#也可以通过一个新的DataFrame对象来定义一个新列,索引自动对应 df2['col5']=pd.DataFrame(['MachineLearning','DeepLearning'],index=['a','b']) printdf2
col1col2col3col4col5 a123cnnMachineLearning b456rnnDeepLearning
行扩充
#行进行扩充 printdf2.append(pd.DataFrame({'col1':7,'col2':8,'col3':9,'col4':'rcnn','col5':'ReinforcementLearning'},index=['c']))
col1col2col3col4col5 a123cnnMachineLearning b456rnnDeepLearning c789rcnnReinforcementLearning
注意!
#如果在进行行扩充时候没有,指定index的参数,索引会被数字取代 printdf2.append({'col1':10,'col2':11,'col3':12,'col4':'frnn','col5':'DRL'},ignore_index=True)
col1col2col3col4col5 0123cnnMachineLearning 1456rnnDeepLearning 2101112frnnDRL
#以上的行扩充,并没有真正修改,df2这个DataFrame对象,除非 df2=df2.append(pd.DataFrame({'col1':7,'col2':8,'col3':9,'col4':'rcnn','col5':'ReinforcementLearning'},index=['c'])) printdf2
col1col2col3col4col5 a123cnnMachineLearning b456rnnDeepLearning c789rcnnReinforcementLearning c789rcnnReinforcementLearning
printdf2.loc['c']
col1col2col3col4col5 c789rcnnReinforcementLearning c789rcnnReinforcementLearning
DataFrame对象的合并
#DataFrame对象的合并 df_a=pd.DataFrame(['wang','jing','hui','is','a','master'],columns=['col6'],index=['a','b','c','d','e','f']) printdf_a
col6 awang bjing chui dis ea fmaster
#默认合并,只保留dfb中的全部索引 dfb=pd.DataFrame([1,2,4,5,6,7],columns=['col1'],index=['a','b','c','d','f','g']) printdfb.join(df_a)
col1col6 a1wang b2jing c4hui d5is f6master g7NaN
#默认合并之接受索引已经存在的值 #通过指定参数how,指定合并的方式 printdfb.join(df_a,how='inner')#合并两个DataFrame对象的交集
col1col6 a1wang b2jing c4hui d5is f6master
#合并两个DataFrame对象的并集 printdfb.join(df_a,how='outer')
col1col6 a1.0wang b2.0jing c4.0hui d5.0is eNaNa f6.0master g7.0NaN
以上这篇Pandas:DataFrame对象的基础操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。