2024-09-29 01:25:09 发布
网友
我有一个有两个国家描述的数据框。有时它们匹配,有时不匹配
Country Desc1 Country Desc2 1 US US 2 US UK 3 UK US 4 UK UK
我需要1.)插入另一列(Country Desc3),其中所有行值都填充了2。)如果与Country Desc2匹配,则返回Country Desc1的规则。在
让我们使用iloc和join:
iloc
join
df['Country Desc3'] = df.apply(lambda x: x.iloc[0] if x.iloc[0] == x.iloc[1] else ', '.join(x),axis=1)
输出:
如果在新列中需要字符串,请尝试此操作
df['Country Desc3']=df.apply(lambda x: ','.join(x.unique().tolist()), axis=1)
如果您需要新列中的列表
以防万一您需要NaN来表示没有匹配的行
NaN
df['Country Desc3']=np.nan df.loc[df['Country Desc1']==df['Country Desc2'],'Country Desc3']=df['Country Desc1']
df['Country Desc3'] = \ df['Country Desc1'].mask(df['Country Desc1'] != df['Country Desc2']) df Country Desc1 Country Desc2 Country Desc3 0 US US US 1 US UK NaN 2 UK US NaN 3 UK UK UK
让我们使用
iloc
和join
:输出:
^{pr2}$如果在新列中需要字符串,请尝试此操作
如果您需要新列中的列表
^{pr2}$以防万一您需要
NaN
来表示没有匹配的行相关问题 更多 >
编程相关推荐