我有一个数据框架,看起来像这样:
df =
AT BE DE FR NL from to
id
10365 2 4 6 12 4 DE AT
10366 3 6 7 14 7 AT FR
10370 4 8 8 16 10 BE FR
10370 5 10 9 18 13 BE FR
10380 6 12 10 20 16 NL DE我想要做的是获取另一列,如果它与from to值相匹配,则从彼此相减的列中减去两个值。例如,由此产生的数据框架应该类似于:
df_result =
AT BE DE FR NL from to result
id
10365 2 4 6 12 4 DE AT 6-2 = 4
10366 3 6 7 14 7 AT FR 3-14 = -11
10370 4 8 8 16 10 BE FR 8-16 = -8
10370 5 10 9 18 13 BE FR 10-18 = -8
10380 6 12 10 20 16 NL DE 16-10 = 6当然不需要计算了。
因此,使用from = DE和to = AT的第一行,它应该从同一行的DE中的值中减去该行中AT的值等等。
发布于 2022-09-12 12:35:33
使用Lambda
df['result'] = df.apply(lambda x: x[x['from']]-x[x['to']], axis=1)https://stackoverflow.com/questions/73689256
复制相似问题