数据框是frame,首先reset_index(drop=True),会将index删除,但frame本身默认不会变化,,reset_index参数inplace默认为False.当reset_index(drop=False)时index会被还原为1列。
首先我们删除了index列,加上axis=1,删除全列,inplace=True,frame就地改变。
改变索引,还原为之前frame.index=['three','one'],frame索引变化。此时,frame.reset_index(drop=True,inplace=True)这一步先将index 删除,就地改变,索引还原默认0,1.2………….N。
更改局部index 和列名:object.rename(index/columns={' ': ' '})
frame.rename(columns={'d':'m'},inplace=True)
Pandas之set_index()
将c,d列设置为index。
frame.set_index(['c','d'],drop=False),drop设置为false,原来的列不被丢失。
利用reset_index()原来index被还原为列。
数据框的合并pd.merge()
Pd.merge()合并是去相同的列,默认为how='inner',可以发现这列的c,d不见了。
pd.merge(df3,df4,left_on='lkey',right_on='rkey')在数据框合并是左边使用列lkey,右边使用列rkey,默认是inner,得到的结果rkey,lkey都在结果出现,两个列是相等的。
How='left','right','inner','outer'等选择。
pd.merge(left1,right1,left_on='key',right_index=True)左侧数据用列,右侧数据用索引,how默认inner
pd.merge(lefth,righth,left_on=['key1','key2'],right_index=True),左侧数据用两列进行合并。
Df.join(),数据框的合并
np.concatenate(),
np.concatenate([arr,arr],axis=0)用于数组的合并,axis=0行与行的对接,axis=1列与列的对接。默认axis=0
Pd.concat()
pd.concat([obj1,obj2], axis=0/1),将合并对象放入[]中传入对象参数,axis默认是0,行与行的对接,join默认outer,与pd.merge()不同,这里参数是join
Pd.merge(),key参数会根据axis=0/1,x新建index名或者column名,第一重索引,具体见【50】
Unstack()与stack()
Unstack()会将series还原为dataframe,stack()将dataframe变成series
Series对象的unique,value_counts()
ddd
数据框的unstack(),二重columns为列,也可指定是index name
Df.melt()
df.melt('key')将key作为变量的其余变量作为var的值,对应值为value的值
pivot()是其逆操作。
Pd.melt()也可以将变量值先限制为某一些,【A,B,原变量】,同样可以不指定id变量,直接传入变量值【A,B,C】