python - Python:如何根据重复行重塑数据框?
问题描述
我有一个如下所示的数据框
df
Name Val1 Val2
0 Mark 0 3
1 Mark 2 3
2 Mark 5 6
3 Mark 7 8
4 Paul -1 0
5 Paul 2 -3
我想要这样的东西
df
Name Val1_0 Val1_1 Val1_2 Val1_3 Val2_0 Val2_1 Val2_2 Val2_3
0 Mark 0 2 5 7 3 3 6 8
1 Paul -1 2 Nan Nan 0 -3 Nan Nan
解决方案
cumcount
然后尝试pivot
df['new'] = df.groupby('Name').cumcount().astype(str)
out = df.pivot(index = 'Name',columns = 'new', values=['Val1','Val2'])
out.columns = out.columns.map('_'.join)
out.reset_index(inplace=True)
Out[170]:
Name Val1_0 Val1_1 Val1_2 Val1_3 Val2_0 Val2_1 Val2_2 Val2_3
0 Mark 0.0 2.0 5.0 7.0 3.0 3.0 6.0 8.0
1 Paul -1.0 2.0 NaN NaN 0.0 -3.0 NaN NaN
推荐阅读
- reactjs - 使用 GitHub Actions 和 Firebase 时,Jest 在测试运行完成后一秒没有退出
- java - 在 Spring Boot 应用程序中登录后维护用户的会话(HttpSession)
- c# - Random.Next 确实有效,但它不会返回每个值
- ios - 使用 Firebase 和 Swift 存储独特的事件
- r - 从可能的标签库中为数据框分配标签
- gtk3 - 如何监控 Gtk3 事件循环延迟
- oracle - Oracle APEX Page item Read Only option which have multiple Conditions
- azure-functions - VS Code 中的 Azure Functions 多个项目
- c# - 测试括号是否平衡, (a{[]b({})}c)[] 返回 false,但应该为 true
- excel - 如何让 shell 函数读取变量中的值而不是 VBA 中的变量名?