首页 > 解决方案 > 在匹配两个数据框具有的列中的值后,如何将数据框的列值作为新列放入另一个数据框?

问题描述

我正在尝试在 DataFrame 中创建一个新列,并将其与存储在不同数据框中的值一起存储,方法是首先比较两个数据框所具有的列的值。例如:

df1 >>> 

| name | team | week |  dates     | interceptions |  pass_yds |  rating  |
| ---- | ---- | -----| ---------- | ------------- | --------- | -------- |
| maho |  KC  |   1  | 2020-09-10 |      0        |    300    |    105   |
| went | PHI  |   1  | 2020-09-13 |      2        |    225    |    74    |
| lock | DEN  |   1  | 2020-09-14 |      0        |    150    |    89    |             
| dris | DEN  |   2  | 2020-09-20 |      1        |    220    |    95    |
| went | PHI  |   2  | 2020-09-20 |      2        |    250    |    64    |
| maho |  KC  |   2  | 2020-09-21 |      1        |    245    |    101   |

df2 >>>

| name | team | week | catches | rec_yds | rec_tds |
| ---- | ---- | -----| ------- | ------- | ------- |
| ertz | PHI  |   1  |    5    |   58    |    1    |
| fant | DEN  |   2  |    6    |   79    |    0    |
| kelc |  KC  |   2  |    8    |   105   |    1    |
| fant | DEN  |   1  |    3    |   29    |    0    |
| kelc |  KC  |   1  |    6    |   71    |    1    |
| ertz | PHI  |   2  |    7    |   91    |    2    |
| goed | PHI  |   2  |    2    |   15    |    0    |

在匹配团队和周列之后,我想dates在 df2 中创建一个列,其中存储在datesdf1 列中的日期值。匹配后,本例中的 df2 应如下所示:

df2 >>>

| name | team | week | catches | rec_yds | rec_tds |  dates     | 
| ---- | ---- | -----| ------- | ------- | ------- | ---------- |
| ertz | PHI  |   1  |    5    |    58   |    1    | 2020-09-13 |
| fant | DEN  |   2  |    6    |    79   |    0    | 2020-09-20 |
| kelc |  KC  |   2  |    8    |    105  |    1    | 2020-09-20 |
| fant | DEN  |   1  |    3    |    29   |    0    | 2020-09-14 |
| kelc |  KC  |   1  |    6    |    71   |    1    | 2020-09-10 |
| ertz | PHI  |   2  |    7    |    91   |    2    | 2020-09-20 |
| goed | PHI  |   2  |    2    |    15   |    0    | 2020-09-20 |

我正在寻找最佳解决方案。我已经尝试过嵌套 for 循环并将两个数据帧中的weekandteam列一起比较,但这并没有奏效。在这一点上,我完全没有想法。请帮忙!

免责声明:我正在使用的实际数据帧要大得多。他们有更多的行、列和值(即列中有更多的团队,team列中有更多的日期,dates列中有更多的周week数)

标签: pythonpandasdataframe

解决方案


推荐阅读