将两个不同的列合二为一(Oretation 是名称)



我有疑问,例如如何将两个不同的列连接在一个列中: A、B、C是现有的df。 D 列是结局 df。

A        B              C             
1   Pattern     B3341        Description      
7   18774       18.11.2019       63            
8   18775       18.11.2019       63            
26  Pattern     B2633        Description      
56  18814       18.11.2019       63             
57  18815       18.11.2019       63             

如何获取 D 列: 我不知道如何写B3341(首先我必须找到"描述">一词,然后越过左行进入 D 列(

输出:

D             
B3341           
63            
63            
B2633      
63             
63 

您可以使用函数np.where

df['D'] = np.where(df['C'] == ' Description', df['B'], df['C'])

或方法mask

df['D'] = df['C'].mask(df['C'] == 'Description', df['B'])

您可以使用 apply 函数来实现此目的:

def custom_apply(row):
if row['C'] == 'Description':
return row['B']
else:
return row['C']
df['D'] = df.apply(custom_apply, axis=1)

应该工作

甚至作为 lambda 表达式:

df['D'] = df.apply(lambda x : x['B'] if x['C'] == 'Description' else x['C'], axis=1)

最新更新