如何获取 DataFrame Pandas 中列的差异?

问题描述 投票:0回答:2

我需要得到一个 DataFrame,其中包含我选择的列的列差异(例如最后一个)

我尝试使用

df.diff(axis=1, periods=1)
将计算列与下一列的差异。但是,我想得到只有一列(最后一列)的列差异。

python pandas dataframe diff difference
2个回答
1
投票

要获取 pandas DataFrame 中最后一列和另一列之间的差异,您可以使用以下代码:

import pandas as pd

创建一个示例 DataFrame

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})

计算最后一列和“A”列之间的差异

diff = df.iloc[:, -1] - df['A']

创建一个新的 DataFrame,以差异作为列

diff_df = pd.DataFrame(diff, columns=['Difference'])

这里,

df.iloc[:, -1]
选择DataFrame的最后一列,
df['A']
选择
'A'
列。从另一列中减去一列得出两列之间的差异。最后,创建一个新的 DataFrame,并将差异作为列。

如果要计算最后一列与所有其他列的差值,可以这样修改代码:

计算最后一列和所有其他列之间的差异

diff = df.iloc[:, -1] - df.iloc[:, :-1]

创建一个新的 DataFrame,将差异作为列

diff_df = pd.DataFrame(diff, columns=df.columns[:-1])

此处,

df.iloc[:, :-1]
选择除最后一列之外的所有列,并从中减去最后一列得出最后一列与所有其他列之间的差异。然后将产生的差异存储在一个新的 DataFrame 中,其中的列与原始列相对应,但最后一列除外。


0
投票

使用

DataFrame.sub
减去由
DataFrame.iloc
选择的最后一列:

df1 = df.sub(df.iloc[:, -1], axis=0)

如果需要减去标签选择的列:

df1 = df.sub(df['col'], axis=0)
© www.soinside.com 2019 - 2024. All rights reserved.