首页 > 解决方案 > 在特定条件下交换列和行中的值

问题描述

我有以下熊猫数据框:

在此处输入图像描述

我想检查列中的值是否'A start'为负。'start'如果在列和'end''A start''A end'行中的交换值为负,则

'A start'有一个负值。所以结果应该是:

在此处输入图像描述

我试图用它来解决它,where但它不起作用。

我正在使用python 3.8。

非常感谢您的帮助。

标签: pythonpandasdataframeconditional-statements

解决方案


这是使用最简单的方法where


df = pd.DataFrame()
df['start']   = [1,5,7,2]
df['end']     = [4,6,8,9,]
df['A start'] = [234, -475, -765, 113]
df['A end']   = [-654, 312, 987, -553]


df[['A start','A end']] = df[['A end','A start']].where(df['A start'] < 0 , df[['A start','A end']].values)
df

输出: 在此处输入图像描述


推荐阅读