pandas - 通过比较行创建新列
问题描述
我的输入数据是这样的
df = pd.DataFrame({'A':[1,2,3,4], 'B':['x','y','x','y'], 'C':['S1','S1','S2','S2']})
A B C
0 1 x S1
1 2 y S1
2 3 x S2
3 4 y S2
我想按“C”分组。然后对于组中的 2 行,使用 B 的值将 A 的值分配到另一列并将其减少到一行。
它应该变成
C D_x D_y
0 S1 1 2
1 S2 3 4
真实数据有十万多行,但总是分成两行。会有其他列,但它们在组内保持不变。
谢谢
解决方案
你需要的更像是一个pivot
df.pivot('C','B','A')
Out[209]:
B x y
C
S1 1 2
S2 3 4
推荐阅读
- hadoop - 如何在配置单元中设置限制子句的范围
- perforce - Perforce:通过复制现有工作区来设置工作区?
- ios - Flurry Analytics iOS 存档错误
- eclipse - Eclipse 一直说“没有使用测试运行程序 JUnit 5 找到测试”
- c# - 依赖注入:静态参数和服务
- c++ - 在使用 EVP 在 Openssl 中发出信号之前,是否需要先播种?
- elasticsearch - 从 ElasticSearch 中的查询中删除令牌
- github - 跟踪多个 github 公共存储库的提交
- android - 前 Marshmallow Android Studio 模拟器上的 Google Play 商店
- java - 如何编写涉及 javafx 文件选择器的序列化和反序列化测试?