将两个不同的列合并为一列(oretation是name)

2024-10-08 19:32:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,如何在一个列中连接两个不同的列,例如: A、B、C为现有df。 D列是结尾。你知道吗

         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 

Tags: df结尾description单词patternb3341b2633
2条回答

您可以使用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)

可以使用函数^{}

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

或者方法^{}

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

相关问题 更多 >

    热门问题