Python 在特定条件下交换列和行中的值
我有以下数据帧: 我想检查Python 在特定条件下交换列和行中的值,python,pandas,dataframe,conditional-statements,Python,Pandas,Dataframe,Conditional Statements,我有以下数据帧: 我想检查'A start'列中的值是否为负值。如果为负值,则交换列'start'和'end'以及列'A start'和'A end'中 “开始”的值为负值。因此,结果应该是: 我试着用where解决它,但它不起作用 我正在使用python 3.8 非常感谢您的帮助。嘿,看看这篇文章,它与您的问题类似,可能会有所帮助!如果不让我知道,可以寻找其他的选择 嘿,看看这篇文章,它与你的问题类似,可能会有所帮助!如果不让我知道,可以寻找其他的选择 以下是使用的最简单方法,其中 df
'A start'
列中的值是否为负值。如果为负值,则交换列'start'
和'end'
以及列'A start'
和'A end'
中
“开始”的值为负值。因此,结果应该是:
我试着用where
解决它,但它不起作用
我正在使用python 3.8
非常感谢您的帮助。嘿,看看这篇文章,它与您的问题类似,可能会有所帮助!如果不让我知道,可以寻找其他的选择
嘿,看看这篇文章,它与你的问题类似,可能会有所帮助!如果不让我知道,可以寻找其他的选择
以下是使用的最简单方法,其中
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
df=pd.DataFrame()
df['start']=[1,5,7,2]
df['end']=[4,6,8,9,]
df['A start']=[234,-475,-765113]
df['A end']=[-654312987,-553]
df[['A start','A end']]=df[['A end','A start']]。其中(df['A start']<0,df['A start','A end']]。值)
df
输出:
以下是使用的最简单方法,其中
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
df=pd.DataFrame()
df['start']=[1,5,7,2]
df['end']=[4,6,8,9,]
df['A start']=[234,-475,-765113]
df['A end']=[-654312987,-553]
df[['A start','A end']]=df[['A end','A start']]。其中(df['A start']<0,df['A start','A end']]。值)
df
输出:
不幸的是,您发送的链接没有帮助不幸的是,您发送的链接没有帮助谢谢,它可以工作!伟大的确保批准答案!谢谢你,这很有效!伟大的确保批准答案!