如何在两个数据帧中查找值,以及如何在一个数据帧中的匹配行上添加新值

水星繁荣

这是我要完成的工作:我想在df1和df2中找到匹配的“记录ID”,找到匹配项后,在df1中创建新列“ New Record ID”并复制“ New Record ID”从df2到具有匹配“记录ID”的行。

df1
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+
|   | ID | Start time          | Completion time     | Email   | Name       | Client Name | Date Due   | Narrative          | Role        | Name ID   | Role ID    | Record ID                         |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+
| 0 | 1  | 2020-05-07 19:35:13 | 2020-05-07 19:36:29 | [email protected] | John Smith | HPOT        | 2020-05-01 | HPOT TS Narrative  | Supervisor  | JohnSmith | Supervisor | hpotjohnsmithsupervisor2020-05-01 |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+
| 1 | 2  | 2020-05-07 19:36:31 | 2020-05-07 19:37:23 | [email protected] | John Smith | SMAN        | 2020-05-01 | SMAN IP Narrative  | Line Worker | JohnSmith | LineWorker | smanjohnsmithlineworker2020-05-01 |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+
| 2 | 3  | 2020-05-07 19:37:25 | 2020-05-07 19:38:57 | [email protected] | John Smith | THUL        | 2020-05-01 | THUL TS Narrative  | Supervisor  | JohnSmith | Supervisor | thuljohnsmithsupervisor2020-05-01 |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+
| 3 | 4  | 2020-05-07 19:38:59 | 2020-05-07 19:40:30 | [email protected] | John Smith | HPOT        | 2020-05-01 | HPOT IP Narrative  | Line Worker | JohnSmith | LineWorker | hpotjohnsmithlineworker2020-05-01 |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+
| 4 | 5  | 2020-05-07 19:40:32 | 2020-05-07 19:41:11 | [email protected] | John Smith | SMAN        | 2020-05-01 | SMAN TS Narrative  | Supervisor  | JohnSmith | Supervisor | smanjohnsmithsupervisor2020-05-01 |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+


df2

+---+----+------------+---------------------+---------+------------+-----------------------------------+-------------+------------+--------------------------------+------------+----------------------------------------------+
|   | ID | Start time | Completion time     | Email   | Name       | Record ID                         | Client Name | Due Date   | Revised Narrative              | Role       | New Record ID                                |
+---+----+------------+---------------------+---------+------------+-----------------------------------+-------------+------------+--------------------------------+------------+----------------------------------------------+
| 0 | 1  | 2020-05-09 | 2020-05-09 10:57:24 | [email protected] | John Smith | hpotjohnsmithsupervisor2020-05-01 | HPOT        | 2020-05-01 | HPOT Revised Summary Narrative | Supervisor | hpotjohnsmithsupervisor2020-05-01-2020-05-06           |
+---+----+------------+---------------------+---------+------------+-----------------------------------+-------------+------------+--------------------------------+------------+----------------------------------------------+
| 1 | 2  | 2020-05-09 | 2020-05-07 19:38:57 | [email protected] | John Smith | thuljohnsmithsupervisor2020-05-01 | THUL        | 2020-05-01 | THUL Revised Summary Narrative | Supervisor | thuljohnsmithsupervisor2020-05-01-2020-05-06 |
+---+----+------------+---------------------+---------+------------+-----------------------------------+-------------+------------+--------------------------------+------------+----------------------------------------------+

期望的输出:df1

+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+------------------------------------+
|   | ID | Start time          | Completion time     | Email   | Name       | Client Name | Date Due   | Narrative          | Role        | Name ID   | Role ID    | Record ID                         | New Record ID                      |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+------------------------------------+
| 0 | 1  | 2020-05-07 19:35:13 | 2020-05-07 19:36:29 | [email protected] | John Smith | HPOT        | 2020-05-01 | HPOT TS Narrative  | Supervisor  | JohnSmith | Supervisor | hpotjohnsmithsupervisor2020-05-01 | hpotjohnsmith2020-05-01-2020-05-06 |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+------------------------------------+
| 1 | 2  | 2020-05-07 19:36:31 | 2020-05-07 19:37:23 | [email protected] | John Smith | SMAN        | 2020-05-01 | SMAN IP Narrative  | Line Worker | JohnSmith | LineWorker | smanjohnsmithlineworker2020-05-01 |                                    |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+------------------------------------+
| 2 | 3  | 2020-05-07 19:37:25 | 2020-05-07 19:38:57 | [email protected] | John Smith | THUL        | 2020-05-01 | THUL TS Narrative  | Supervisor  | JohnSmith | Supervisor | thuljohnsmithsupervisor2020-05-01 |                                    |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+------------------------------------+
| 3 | 4  | 2020-05-07 19:38:59 | 2020-05-07 19:40:30 | [email protected] | John Smith | HPOT        | 2020-05-01 | HPOT IP Narrative  | Line Worker | JohnSmith | LineWorker | hpotjohnsmithlineworker2020-05-01 |                                    |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+------------------------------------+
| 4 | 5  | 2020-05-07 19:40:32 | 2020-05-07 19:41:11 | [email protected] | John Smith | SMAN        | 2020-05-01 | SMAN TS Narrative  | Supervisor  | JohnSmith | Supervisor | smanjohnsmithsupervisor2020-05-01 |                                    |
+---+----+---------------------+---------------------+---------+------------+-------------+------------+--------------------+-------------+-----------+------------+-----------------------------------+------------------------------------+

我尝试使用isin和loc,但无法使其正常工作。最近的尝试是尝试此操作:

df2.loc[df2['Record ID'] == df1['Record ID']]

但出现以下错误:“ ValueError:只能比较标记相同的Series对象”

在此先感谢您提供的任何帮助!

根据要求,以下是剪贴板中的数据:df1

ID,Start time,Completion time,Email,Name,Client Name,Date Due,Narrative,Role,Name ID,Role ID,Record ID
1,2020-05-07 19:35:13,2020-05-07 19:36:29,[email protected],John Smith,HPOT,2020-05-01,"HPOT TS Narrative
Sed pretium, nunc sit amet finibus finibus, sem tortor fringilla arcu, ac vehicula massa tellus id purus. Proin luctus sodales lacus sed tempus.",Supervisor,JohnSmith,Supervisor,hpotjohnsmithsupervisor2020-05-01
2,2020-05-07 19:36:31,2020-05-07 19:37:23,[email protected],John Smith,SMAN,2020-05-01,"SMAN IP Narrative - Sed pretium, nunc sit amet finibus finibus, sem tortor fringilla arcu, ac vehicula massa tellus id purus. Proin luctus sodales lacus sed tempus.
",Worker,JohnSmith,Worker,smanJohnSmithWorker2020-05-01
3,2020-05-07 19:37:25,2020-05-07 19:38:57,[email protected],John Smith,THUL,2020-05-01,"THUL TS Narrative
Entry 3 - Sed pretium, nunc sit amet finibus finibus, sem tortor fringilla arcu, ac vehicula massa tellus id purus. Proin luctus sodales lacus sed tempus..
",Supervisor,JohnSmith,Supervisor,thulJohnSmithSupervisor2020-05-01
4,2020-05-07 19:38:59,2020-05-07 19:40:30,[email protected],John Smith,HPOT,2020-05-01,HPOT IP Narrative,Worker,JohnSmith,Worker,hpotJohnSmithWorker2020-05-01
5,2020-05-07 19:40:32,2020-05-07 19:41:11,[email protected],John Smith,SMAN,2020-05-01,SMAN TS Narrative,Supervisor,JohnSmith,Supervisor,smanJohnSmithSupervisor2020-05-01
6,2020-05-07 19:41:12,2020-05-07 19:41:40,[email protected],John Smith,THUL,2020-05-01,THUL IP Narrative,Worker,JohnSmith,Worker,thulJohnSmithWorker2020-05-01

df2

ID,Start time,Completion time,Email,Name,Record ID,Client Name,Due Date,Revised Narrative,Role,New Record ID
1,2020-05-09,2020-05-09 10:57:24,[email protected],John Smith,hpotjohnsmithsupervisor2020-05-01,HPOT,2020-05-01,HPOT Revised Summary Narrative,Supervisor,hpotjohnsmithsupervisor2020-05-012020-05-09

可以由尝试回答我的问题的人将其复制到剪贴板,然后按

df = pd.read_clipboard(sep=',')

尝试:所以我尝试了“加入”建议:

df1.set_index('Record ID').join(df2.set_index('Record ID'))

并且发生此错误:“ ValueError:列重叠但未指定后缀:Index(['ID','开始时间','完成时间','电子邮件','名称','客户名称','角色'], dtype ='object')“

特伦顿·麦金尼

使用pandas.DataFrame.merge

  • df1['Records ID']之间没有匹配值,df2['Records ID']因为一列包含大写字母,另一列没有大写字母。必须解决此问题才能找到匹配项。
# fix Record ID for test data, this may not be required with the real data
df2['Record ID'] = df2['Record ID'].str.lower()
df['Record ID'] = df['Record ID'].str.lower()

# removed Narrative for cosmetic reasons on SO. Not necessary otherwise
df.drop(columns=['Narrative'], inplace=True)

# merge the two dataframes is the main thing
df3 = df.merge(df2[['Record ID', 'New Record ID']], how='left', on='Record ID')

print(df3)

 ID           Start time      Completion time                    Email        Name Client Name    Date Due        Role    Name ID     Role ID                          Record ID                                New Record ID
  1  2020-05-07 19:35:13  2020-05-07 19:36:29  [email protected]  John Smith        HPOT  2020-05-01  Supervisor  JohnSmith  Supervisor  hpotjohnsmithsupervisor2020-05-01  hpotjohnsmithsupervisor2020-05-012020-05-09
  2  2020-05-07 19:36:31  2020-05-07 19:37:23  [email protected]  John Smith        SMAN  2020-05-01      Worker  JohnSmith      Worker      smanJohnSmithWorker2020-05-01                                          NaN
  3  2020-05-07 19:37:25  2020-05-07 19:38:57  [email protected]  John Smith        THUL  2020-05-01  Supervisor  JohnSmith  Supervisor  thulJohnSmithSupervisor2020-05-01                                          NaN
  4  2020-05-07 19:38:59  2020-05-07 19:40:30  [email protected]  John Smith        HPOT  2020-05-01      Worker  JohnSmith      Worker      hpotJohnSmithWorker2020-05-01                                          NaN
  5  2020-05-07 19:40:32  2020-05-07 19:41:11  [email protected]  John Smith        SMAN  2020-05-01  Supervisor  JohnSmith  Supervisor  smanJohnSmithSupervisor2020-05-01                                          NaN
  6  2020-05-07 19:41:12  2020-05-07 19:41:40  [email protected]  John Smith        THUL  2020-05-01      Worker  JohnSmith      Worker      thulJohnSmithWorker2020-05-01                                          NaN                                     NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

子数据匹配另一个数据帧中的两个变量

来自分类Dev

如何为r中两个数据帧之间的匹配观测值分配相同的唯一ID?

来自分类Dev

R:如何在一个数据帧中连接重复的行

来自分类Dev

如何在两个数据框中匹配列值,以及如何使行名与匹配的相应列值匹配

来自分类Dev

匹配两个数据帧并更改其中一个数据帧中的值

来自分类Dev

在R中使用条件删除两个重复的行后,如何在两个数据帧中查找互惠对

来自分类Dev

如何在ggplot2中使用点表示第一个数据帧和用线表示两个数据帧之间的变化来绘制两个数据帧?

来自分类Dev

组合两个数据帧,以便一个数据帧中的值成为另一数据帧中的标头

来自分类Dev

如何在R中的另一个数据帧中同时满足两个条件的情况下为一个数据帧设置子集?

来自分类Dev

如何在python中不同大小的两个数据帧中比较值对?

来自分类Dev

如果特定列的值在两个数据帧中都匹配,则将一个数据帧的行复制到另一数据帧

来自分类Dev

如何在单独的数据帧中为每个值重复数据帧的每一行,然后将两者合并为一个数据帧?

来自分类Dev

如何根据第二个中的可能值范围合并两个数据帧,但保留第一个中的值?

来自分类Dev

在R中,如何合并两个数据帧,其中一个中的列名等于另一个中的行值?

来自分类Dev

如何基于一个数据帧的行值是一个子字符串/包含在另一个数据帧的行值中来联接两个数据帧?

来自分类Dev

如何在R中的两个数据帧之间编程条件值?

来自分类Dev

如何在R中的两个数据帧之间编程条件值?

来自分类Dev

如何在R中查找2个数据帧的公共行(反之亦然)

来自分类Dev

根据R中的两个匹配条件,将值从一个数据帧添加到另一个数据帧

来自分类Dev

在python熊猫中,如何合并两个数据帧,同时使用另一个的权重将值散布在一个数据中?

来自分类Dev

如何在R中的另一个数据帧中同时满足两个条件的情况下为一个数据帧设置子集?

来自分类Dev

组合两个数据帧,以便一个数据帧中的值成为另一数据帧中的标头

来自分类Dev

如何在第一个数据帧中的另一个基于数据帧的列值中获取值的总和?

来自分类Dev

如何将两个数据帧中的行合并为 R 中的一个数据帧?

来自分类Dev

合并数据帧,以便将一个数据帧中的值插入到另一个数据帧中匹配的行号中

来自分类Dev

如何为第一个数据帧中匹配的特定列值的所有值获取第二个数据帧的数据?

来自分类Dev

如何在python中删除跨越两个数据帧索引的重复行

来自分类Dev

如何将一个数据帧作为子集(完整)查找或匹配到 R 中的另一个数据帧?

来自分类Dev

根据两个列值是否存在于另一个数据帧中组合两个数据帧

Related 相关文章

  1. 1

    子数据匹配另一个数据帧中的两个变量

  2. 2

    如何为r中两个数据帧之间的匹配观测值分配相同的唯一ID?

  3. 3

    R:如何在一个数据帧中连接重复的行

  4. 4

    如何在两个数据框中匹配列值,以及如何使行名与匹配的相应列值匹配

  5. 5

    匹配两个数据帧并更改其中一个数据帧中的值

  6. 6

    在R中使用条件删除两个重复的行后,如何在两个数据帧中查找互惠对

  7. 7

    如何在ggplot2中使用点表示第一个数据帧和用线表示两个数据帧之间的变化来绘制两个数据帧?

  8. 8

    组合两个数据帧,以便一个数据帧中的值成为另一数据帧中的标头

  9. 9

    如何在R中的另一个数据帧中同时满足两个条件的情况下为一个数据帧设置子集?

  10. 10

    如何在python中不同大小的两个数据帧中比较值对?

  11. 11

    如果特定列的值在两个数据帧中都匹配,则将一个数据帧的行复制到另一数据帧

  12. 12

    如何在单独的数据帧中为每个值重复数据帧的每一行,然后将两者合并为一个数据帧?

  13. 13

    如何根据第二个中的可能值范围合并两个数据帧,但保留第一个中的值?

  14. 14

    在R中,如何合并两个数据帧,其中一个中的列名等于另一个中的行值?

  15. 15

    如何基于一个数据帧的行值是一个子字符串/包含在另一个数据帧的行值中来联接两个数据帧?

  16. 16

    如何在R中的两个数据帧之间编程条件值?

  17. 17

    如何在R中的两个数据帧之间编程条件值?

  18. 18

    如何在R中查找2个数据帧的公共行(反之亦然)

  19. 19

    根据R中的两个匹配条件,将值从一个数据帧添加到另一个数据帧

  20. 20

    在python熊猫中,如何合并两个数据帧,同时使用另一个的权重将值散布在一个数据中?

  21. 21

    如何在R中的另一个数据帧中同时满足两个条件的情况下为一个数据帧设置子集?

  22. 22

    组合两个数据帧,以便一个数据帧中的值成为另一数据帧中的标头

  23. 23

    如何在第一个数据帧中的另一个基于数据帧的列值中获取值的总和?

  24. 24

    如何将两个数据帧中的行合并为 R 中的一个数据帧?

  25. 25

    合并数据帧,以便将一个数据帧中的值插入到另一个数据帧中匹配的行号中

  26. 26

    如何为第一个数据帧中匹配的特定列值的所有值获取第二个数据帧的数据?

  27. 27

    如何在python中删除跨越两个数据帧索引的重复行

  28. 28

    如何将一个数据帧作为子集(完整)查找或匹配到 R 中的另一个数据帧?

  29. 29

    根据两个列值是否存在于另一个数据帧中组合两个数据帧

热门标签

归档