Python & Pandas:根据不同 csv 中的匹配项编写列

  • 本文关键字:csv Pandas Python python pandas csv
  • 更新时间 :
  • 英文 :


Python和Pandas新手,欢迎任何帮助或指导。

我正在使用两个不同的csv,roster.csvassignment.csv,字段结构如下:

roster.csv:

first_name, last_name,  user_id,    user
John,   Doe,    0001,   abcd
Jane,   Doe,    0002,   efgh
John,   Smith,  0003,   ijkl

assignment.csv:

user,   text
abcd,   text1
efgh,   text2
ijkl,   text3

user字段匹配时,我想使用roster.csvassignment.csv中创建新列,添加first_name,last_nameuser_id字段。输出如下所示:

user,   text,   first_name, last_name,  user_id
abcd,   text1,  John,   Doe,    0001
efgh,   text2,  Jane,   Doe,    0002
ijkl,   text3,  John,   Smith,  0003
到目前为止,我能够创建一个输出,为上面的字段写入标题,但没有写入任何数据。下面是目前为止的工作代码:
import pandas as pd
df_roster = pd.read_csv('roster.csv')
df_assignment = pd.read_csv('assignment.csv')
df3 = pd.concat([df_assignment, df_roster[~df_roster.user.isin(df_assignment.user)]])

对如何进行有什么见解吗?感谢所有的帮助。

为什么不使用merge呢?

这是给你的指南。https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html

使用merge,而不是concat,这确保键将对齐:

df_roster.merge(df_assignment, left_on='user_id', right_on='user')

相关内容

  • 没有找到相关文章

最新更新