我是熊猫初学者,需要一些帮助。
我有以下熊猫数据框:
ID Val-A Val-B
aab12 lower -30
dbc11 lower -10
aab12 upper 50
dbc11 upper 20
我想从前一个数据帧中生成一个新的数据帧,但想不出一种方法:
ID Val-A Val-B upper-lower
aab12 lower -30 80
aab12 upper 50 80
dbc11 lower -10 30
dbc11 upper 20 30
任何帮助将不胜感激!
最佳答案
我认为您首先需要sort_values
和reset_index
以获得漂亮的单调唯一索引,然后需要transform
和abs
和sum
:
df = df.sort_values('ID').reset_index(drop=True)
df['upper-lower'] = df['Val-B'].abs().groupby(df['ID']).transform(sum)
print (df)
ID val-A Val-B upper-lower
0 aab12 lower -30 80
1 aab12 upper 50 80
2 dbc11 lower -10 30
3 dbc11 upper 20 30
关于python - Pandas 将同一行合并为新列,同时保留该行(不是简单的分组方式),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46772367/