首页 > 解决方案 > 汇总 Pandas DataFrame 中因子水平的差异?

问题描述

给定df1:

  A B C
0 a 7 x
1 b 3 x
2 a 5 y
3 b 4 y
4 a 5 z
5 b 3 z

如何获取df2中的每个值的C位置df1,新的在where和 where的值col D之间存在差异:df1col Bcol A==acol A==b

  C D
0 x 4
1 y 1
2 z 2

标签: pythonpandasdataframe

解决方案


我会使用数据透视表:

df = df1.pivot_table(columns = ['A'],values = 'B', index = 'C')
df2 = pd.DataFrame({'D': df['a'] - df['b']})

@YOBEN_S 给出的答案中的风险是,如果在给定值b之前出现,它将失败aC


推荐阅读