[英]Adding a new column to a dataframe based on the values of another 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.