python - 如何分组数据框并将列用作值
问题描述
使用 python 熊猫。
我的数据表是这样的:
userid roomid true
a A 1
a B 1
b C 0
b D 1
我想要的是:
userid roomid1 roomid2 true1 true2
a A B 1 1
b C D 0 1
谢谢。
解决方案
用于GroupBy.cumcount
计数器,然后用 DataFrame.set_index
with重塑Series.unstack
,最后MultiIndex
用map
with展平join
:
df1 = (df.set_index(['userid', df.groupby(['userid']).cumcount().add(1).astype(str)])
.unstack())
df1.columns = df1.columns.map(''.join)
df1 = df1.reset_index()
print (df1)
userid roomid1 roomid2 true1 true2
0 a A B 1 1
1 b C D 0 1
推荐阅读
- julia - Julia 中对称类型的意义何在?
- python - Python 套接字服务器无法解码来自 OAUTH 的重定向
- r - 如何为R中的约束输入一系列值
- html - 为什么我的 `flex` 表格行不在 Edge 中居中?
- linux - 无法为 Beaglebone AI 配置 5GHz WiFi 频段
- python - python>=3.5 由诗歌管理的项目下如何使用python black formatter?
- android - 是否可以编写参数化的 android espresso UI 测试?
- javascript - useEffect 不会在路由更改时触发
- javascript - Jquery复选框没有改变
- flutter - 无法让 Flutter Add to App 与插件一起使用