首页 > 解决方案 > 如何使用 Python 中的 Pandas 库减去特定列中的所有行值?

问题描述

将 NaN 值转换为零

添加一个名为 diff 的行,其中包含每列中最小值和最大值之间的差异。尝试使用 lambda 函数解决它

添加一个名为 diff 的列,其中包含每行中最小值和最大值之间的差异。

最终的 df 应该如下df_final所示

df = pd.DataFrame({'val1':[9,15,71,9,5], 'val2': [8,31,10, 14,np.nan]})
df

df_final = pd.DataFrame({'diff': {0: 1.0, 1: -16.0, 2: 61.0, 3: -5.0, 4: 5.0, 'diff': 35.0}, 'val1': {0: 9.0, 1: 15.0, 2: 71.0, 3: 9.0, 4: 5.0, 'diff': 66.0}, 'val2': {0: 8.0, 1: 31.0, 2: 10.0, 3: 14.0, 4: 0.0, 'diff': 31.0}})

df_final

现在我想减去列“val1”的所有行值,然后减去“val2”,之后我必须在下面创建一个新行并显示结果(差异)。(如果可能的话,建议我是否可以使用 lambda 函数来完成)

标签: pythonpandasdataframe

解决方案


重症监护病房

df.fillna(0, inplace=True)#Replace NaN with zero
df['diff']=df.val1.sub(df.val2)#Subtract the two vals 
#df.loc[:,'diff']= df.apply(lambda x: x.max() - x.min(), axis=1)#if had more columns and needed differences between max and min across columns
df.loc['diff',:]= df.T.apply(lambda x: x.max() - x.min(), axis=1)#fifference between max and min in each column

在此处输入图像描述


推荐阅读