[英]Pandas groupby and transpose related problem
目前,我正在研究熊猫数据框。 面临与分组操作有关的问题。 我的数据框是-
Name A Job B
A Online Govt 22
B Offline Pvt 50
C Others Other 33
A Others Govt 62
B Online Pvt 18
C Offline Other 35
A Offline Govt 53
B Online Pvt 75
C Others Other 74
我的最终输出应该是-
Name Offline Online Others Govt Pvt Other
A 53 20 62 1 0 0
B 50 18 75 0 1 0
C 35 74 33 0 0 1
我已经完成了以下代码-
data = pd.read_csv('/Users../pandas_data/abc1.csv')
df3 = data.groupby(['Name', 'A'])['B']\
.first()\
.unstack(fill_value='NA')\
.rename_axis(None, 1)
提前致谢。
您应该看一下pandas的pivot_table
,对于输出的第二部分,您可以使用
pd.pivot_table(
data=df.drop(columns='A'),
index=['Name'],
columns=['Job'],
aggfunc=lambda x: int(len(x) > 0),
fill_value=0
)
这将产生
B
Job Govt Other Pvt
Name
A 1 0 0
B 0 0 1
C 0 1 0
然后在第一部分做类似的事情(不知道如何解释..
),例如
pd.pivot_table(
data=df.drop(columns='Job'),
index=['Name'],
columns=['A'],
aggfunc= # depends on what you expect
)
最后使用concat
在axis=1
串联。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.