繁体   English   中英

重新制作pivot_table,pandas中的列

[英]Remake columns in pivot_table,pandas

我已经堆砌成一个姓。 我枢纽这个数据框。

from pandas import DataFrame,Series

d = {'Sex' : Series(["Male","Male","Female","Female","Female","Male"]),
      'Rank' : Series(["A","B","C","A","B","C"]),
      'Num' : Series([1,2,3,4,5,6]),
      'States' : Series(["Ohio","Oregon","NC","Michigan","NY"])
}
df = DataFrame(d)
print df
df_pvt = df.pivot_table("Num",cols=['States','Sex'],rows="Rank")
print df_pvt

该数据框的列为ndarray。

print df_pvt.columns.values
type(df_pvt.columns.values)

我想重新命名为这样的组合列。

colnames = ['Michigan_Female','NC_Female','NY_Female','Ohio_Male','Oregon_Male']

我认为我必须做一个函数来组合这些列,但是如果您知道执行此操作的简便方法,请告诉我任何建议。

谢谢阅读。

最简单的方法可能是在透视之前合并这些列:

In [17]: df['kind'] = df.States + '_' + df.Sex

In [18]: df.pivot_table('Num', cols=['kind'], rows='Rank')
Out[18]: 
kind  Michigan_Female  NC_Female  NY_Female  Ohio_Male  Oregon_Male
Rank                                                               
A                   4        NaN        NaN          1          NaN
B                 NaN        NaN          5        NaN            2
C                 NaN          3        NaN        NaN          NaN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM