将同一行合并为新列

将同一行合并为新列

我是熊猫初学者,需要一些帮助。

我有以下熊猫数据框:

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_valuesreset_index以获得漂亮的单调唯一索引,然后需要transformabssum

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/

10-10 08:15