我有以下数据:
import pandas as pd
df = pd.DataFrame([
[1, 4],
[4, 6],
[8, 2],
[0, 8]
], columns=['a', 'b'])如何计算如下列中第一行与其余行之间的差异:
df['operation_on_a'] = pd.DataFrame([
['1-1'],
['1-4'],
['1-8'],
['1-0']
])
df['operation_on_b'] = pd.DataFrame([
['4-4'],
['4-6'],
['4-2'],
['4-8']
])并使用只使用获得如下结果

在numpy中,我发现有triu_indices方法,但我需要在整个数据表上这样做,以便从其他列获得信息。
你能告诉我解决这个问题的方法吗?谢谢!
发布于 2022-08-25 13:30:24
使用rsub
out = df.rsub(df.iloc[0])或者:
out = df.iloc[0] - df输出:
a b
0 0 0
1 -3 -2
2 -7 2
3 1 -4如果还需要操作的字符串表示形式:
df.iloc[0].astype(str)+'-'+df.astype(str)产出:
a b
0 1-1 4-4
1 1-4 4-6
2 1-8 4-2
3 1-0 4-8发布于 2022-08-25 13:40:13
关于最后一部分:
df2 = df.apply(lambda x: x.iloc[0] - x)https://stackoverflow.com/questions/73488405
复制相似问题