【问题标题】:join two .csv files according to reference column in pandas根据 pandas 中的参考列加入两个 .csv 文件
【发布时间】:2016-09-13 11:53:42
【问题描述】:

我有 2 个不同大小的文件(customer_id 在两个文件中的顺序不同):

data = pd.read_csv('data.csv')

id    name    country   town     customer_id
xxxx  Anna     UK       London   sahdghkl
yyyy  Maria    USA      Huston   avrnnfgs
cccc  Peter    FR       Paris    eesfawsd

data2 = pd.read_csv('data2.csv')

customer_id  card_id   bank   date
sahdghkl     5975845   aaaaa  20000101
avrnnfgs     1122255   bbbbb  20010101
eesfawsd     3366552   ccccc  20020101

我想得到输出:

result
id    name    country   town     customer_id  card_id   bank   date
xxxx  Anna     UK       London   sahdghkl     5975845   aaaaa  20000101 
yyyy  Maria    USA      Huston   avrnnfgs     1122255   bbbbb  20010101
cccc  Peter    FR       Paris    eesfawsd     3366552   ccccc  20020101

【问题讨论】:

  • 你在这些数据集中有“一对一”的关系吗?
  • 试试data1.merge(data2, on='customer_id')

标签: python csv dictionary pandas


【解决方案1】:

尝试使用 pandas.merge

创建数据框:

temp = u"""id    name    country   town     customer_id
xxxx  Anna     UK       London   sahdghkl
yyyy  Maria    USA      Huston   avrnnfgs
cccc  Peter    FR       Paris    eesfawsd"""
data = pd.read_csv(io.StringIO(temp), header=0,delim_whitespace = 1)

temp = u"""customer_id  card_id   bank   date
sahdghkl     5975845   aaaaa  20000101
avrnnfgs     1122255   bbbbb  20010101
eesfawsd     3366552   ccccc  20020101"""
data2 = pd.read_csv(io.StringIO(temp), header=0,delim_whitespace = 1)

df = pd.merge(data,data2,on = 'customer_id')
print df

     id   name country    town customer_id  card_id   bank      date
0  xxxx   Anna      UK  London    sahdghkl  5975845  aaaaa  20000101
1  yyyy  Maria     USA  Huston    avrnnfgs  1122255  bbbbb  20010101
2  cccc  Peter      FR   Paris    eesfawsd  3366552  ccccc  20020101

如果您的两个数据框之一的行数多于另一个,并且您想保留所有行,请添加how = 'outer',如果您只想保留两个数据框中出现的行,请添加:how = 'inner'

【讨论】:

    猜你喜欢
    • 2017-11-12
    • 2023-04-08
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 2017-10-19
    • 2019-06-20
    • 1970-01-01
    相关资源
    最近更新 更多