python - Pandas groupby 和转置相关问题
问题描述
目前我正在研究熊猫数据框。面临与分组操作相关的问题。我的数据框是 -
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
over连接axis=1
。
推荐阅读
- javascript - 如何修复 div 滚动以使其更流畅?
- php - 将 API 响应返回到 web/Android/iOS 时最好的方法是什么?
- rest - 使用springboot为@PathParam获取null
- loops - CSharp:将变量从一个循环提取到另一个循环
- spring - 在 SpringBoot 内的 Jetty 中显示请求头信息
- python-2.7 - 如何在报告中显示产品变体?
- c# - c# Json Post throws 404 bad request error
- javascript - 识别 AR 的标记图像
- python - 打印字符串的次数与传递给脚本的参数一样多
- firebase - 如何为 Firestore 中的不同字段组合创建索引?