[英]How to copy a column in Pandas from one dataset to another based on condition
我有两个这种形式的数据集:
第一个数据集:
Booking_id Booking amount
6678 576545
6429 654556
6452 755849
6056 358749
6084 NaN
6542 768087
第二个数据集:
ID_Universal Price
4857 576545
6084 465488
4886 755849
3868 358749
8669 765889
4684 768087
在第一个数据集中,Booking_amount 的 NaN 值很少......但它们存在于数据集 2 中。例如,如果您将看到 id=6084 在数据集 1 中具有 Nan 值,但对于相同的 id,金额值存在于数据集中2. 同样,数据集 2 中存在数据集 1 中 Booking_amount 的多个 Nan 值。因此,我想将数据集 2 中的值复制到数据集 1,其中数据集 1 具有 Nan 值,但对于相同的 id,它的值存在在数据集 2 中。
如果ID_Universal
在您的第二个 dataframe 中是唯一的, fillna
可以帮助您。
first_df.set_index('Booking_id')['Booking_amount'].fillna(second_df.set_index('ID_Universal')['Price'])
首先,您必须为唯一定义的 dataframe 设置索引
假设第一个数据集具有Booking_id
,第二个数据集具有唯一且相同的ID_Universal
。
df1.set_index('Booking_id', inplace=True)
df2.set_index('ID_Universal', inplace=True)
before_change = 'amount'
after_change = 'Price'
fillna
来填充该nan
值,然后在最后一步将这些列名替换回原始值。df1.rename(columns={before_change:after_change}, inplace=True)
df1.fillna(df2, inplace=True)
df1.rename(columns={after_change:before_change}, inplace=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.