简体   繁体   English

如何使用2个数据框填写表格

[英]How to fill in a table using 2 data frames

I have one data frame that looks like a table like follows: 我有一个看起来像表的数据框,如下所示:

1. DueDate    |    item1    |     item2    |    item3    |    item4

2. 1/1/2018   |     nan     |      nan     |     nan     |     nan
3. 1/2/2018   |     nan     |      nan     |     nan     |     nan
4. 1/3/2018   |     nan     |      nan     |     nan     |     nan
5. 1/4/2018   |     nan     |      nan     |     nan     |     nan
6. 1/5/2018   |     nan     |      nan     |     nan     |     nan

I have another data frame that looks like the table that follows: 我还有另一个数据框,如下表所示:

1. DueDate    |    items 

2. 1/1/2018   |     item1
3. 1/2/2018   |     item3
4. 1/2/2018   |     item4    
5. 1/4/2018   |     item4   
6. 1/5/2018   |     item1
7. 1/5/2018   |     item3

I want to fill the first table with the matching dates and items with YES like follows: 我想用YES匹配日期和项目来填充第一个表,如下所示:

1. DueDate    |    item1    |     item2    |    item3    |    item4

2. 1/1/2018   |     YES     |      nan     |     nan     |     nan
3. 1/2/2018   |     nan     |      nan     |     YES     |     YES
4. 1/3/2018   |     nan     |      nan     |     nan     |     nan
5. 1/4/2018   |     nan     |      nan     |     nan     |     YES
6. 1/5/2018   |     YES     |      nan     |     YES     |     nan

How do I go about doing this, I have tried a lot of things but I was unlucky. 我该怎么做,我尝试了很多事情,但我很不幸。 Thank you in advance! 先感谢您!

You can use the below get_dummies with assigning to df1 : 您可以将以下get_dummies分配给df1

df1[df2['items'].str.get_dummies().columns]=df2['items'].str.get_dummies().replace(1,'YES').replace(0,pd.np.nan)

And now: 现在:

print(df1)

Is: 方法是:

    DueDate item1  item2 item3 item4
0  1/1/2018   YES    NaN   NaN   NaN
1  1/2/2018   NaN    NaN   YES   NaN
2  1/3/2018   NaN    NaN   NaN   YES
3  1/4/2018   NaN    NaN   NaN   YES
4  1/5/2018   YES    NaN   NaN   NaN

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

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