繁体   English   中英

基于另一个 dataframe 列在 dataframe 中添加新列

[英]adding a new column in a dataframe based on another dataframe column

假设我们有以下 2 个数据帧:

df1(36000, 20) and  df2(80,6)
They have 3 columns in common(let's say Name, Last Name, Date)

df1 包括 df2 的数据(减去 3 个不同列中的数据),当然还有一些额外的信息。
df2 有一个我感兴趣的栏目(我们将其命名为 Rent)

我想要的是在 df1 中创建一个额外的列,其中 df2 的值具有“过期”值,而不存在的值具有“到期”,同时保持 df1 中列的 rest。 我尝试了以下

  merged = df1.merge(df2, how='left', on=list(df1.columns),
                                   indicator=True)
    df1['Rent'] = np.where(merged['_merge'] == 'both', 'Overdue', 'Due')

但是,由于并非 df1 的所有列都存在于 df2 中,因此出现错误。 有任何想法吗?

我也尝试了以下

    df1['Rent'].apply(lambda x: 'Overdue' if df1['Name'].isin(df2['Name']) else 'Due')

但我收到以下错误

AttributeError: 'function' object has no attribute 'df2'

尝试这个:

df1['Rent'] = lambda x: 'Overdue' if df1['Name'].isin(df2['Name']) else 'Due'

重点是不要使用.apply()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM