简体   繁体   English

如何根据一列中的匹配值连接两个数据框?

[英]How can I join two dataframes based on matching values in one column?

I start with two dataframes:我从两个数据框开始:

              Breakfast        Lunch
1  Monday     Cereal           Sandwich
2  Wednesday  Eggs             Salad
              Dinner           Snack
1  Monday     Ham              Chips
2  Tuesday    Pasta            Nuts
3  Wednesday  Chicken          Apple

How can I join these two dataframes comparing weekdays in to something like:如何加入这两个数据框,将工作日与以下内容进行比较:

              Breakfast        Lunch        Dinner           Snack
1  Monday     Cereal           Sandwich     Ham              Chips
2  Tuesday                                  Pasta            Nuts
3  Wednesday  Eggs             Salad        Chicken          Apple

You can join (to take advantage of the fact that you're merging on index);您可以join (利用您正在合并索引的事实); then groupby index level 1 (which are days of the week) and use first (which by default drops NaN values)然后groupby索引级别 1(这是一周中的几天)并first使用(默认情况下会丢弃 NaN 值)

out = df1.join(df2, how='outer').groupby(level=1).first().replace({None:''})

Output: Output:

          Breakfast     Lunch   Dinner  Snack
Monday       Cereal  Sandwich      Ham  Chips
Tuesday                          Pasta   Nuts
Wednesday      Eggs     Salad  Chicken  Apple

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

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