【问题标题】:how to map two dataframes with pandas [duplicate]如何用熊猫映射两个数据框[重复]
【发布时间】:2019-11-15 09:43:17
【问题描述】:

我有两个excel 文件

+ File one contains specific data about different customer (like: Sex, Age, Name...) and 
+ File two contains different transactions for each customer

我想在File2 中创建一个新列,其中包含来自File1 的每个客户的特定数据

【问题讨论】:

  • 两个数据框有一个共同的行,对吗?喜欢客户 ID
  • 是的,join 或 pandas.DataFrame.merge(功能更强大,但如果您在加入时不必处理索引,则实际上是相同的)。
  • #Ninad Gaikwad 是的,两个 df 都有相同的 Costumer_ID 列
  • @Ninad Gaikwad,是的

标签: python pandas dataframe mapping


【解决方案1】:

file1.csv

customer_id,sex,age,name
af4wf3,m,12,mike
z20ask,f,15,sam

file2.csv

transaction_id,customer_id,amount
12h2j4hk,af4wf3,123.20
12h2j4h1,af4wf3,5.22
12h2j4h2,z20ask,13.20
12h2j4h3,af4wf3,1.20
12h2j4h4,z20ask,2341.12
12h2j4h5,z20ask,235.96
12h2j4h6,af4wf3,999.30

加载并加入数据框

import pandas as pd

df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')

df1.set_index('customer_id', inplace=True)
df2.set_index('transaction_id', inplace=True)

output = df2.join(df1, on='customer_id')
output.to_csv('file2_updated.csv')

file2_updated.csv

transaction_id,customer_id,amount,sex,age,name
12h2j4hk,af4wf3,123.2,m,12,mike
12h2j4h1,af4wf3,5.22,m,12,mike
12h2j4h2,z20ask,13.2,f,15,sam
12h2j4h3,af4wf3,1.2,m,12,mike
12h2j4h4,z20ask,2341.12,f,15,sam
12h2j4h5,z20ask,235.96,f,15,sam
12h2j4h6,af4wf3,999.3,m,12,mike

【讨论】:

  • 感谢您提供此代码,我尝试重新使用它:出现此消息:“您正在尝试合并 object 和 int64 列。如果您希望继续,您应该使用 pd.concat”跨度>
  • 如果我把索引放到另一列就可以了
  • 当我将两个索引都设置为 Costumer_id 时:出现一条消息:列重叠但未指定后缀
【解决方案2】:

与@jc416 相同,但使用pd.merge

file2.merge(file1, on='customer_id')

    transaction_id  customer_id  amount     sex  age    name
0   12h2j4hk        af4wf3       123.2      m    12     mike
1   12h2j4h1        af4wf3       5.22       m    12     mike
2   12h2j4h3        af4wf3       1.2        m    12     mike
3   12h2j4h6        af4wf3       999.3      m    12     mike
4   12h2j4h2        z20ask       13.2       f    15     sam
5   12h2j4h4        z20ask       2341.12    f    15     sam
6   12h2j4h5        z20ask       235.96     f    15     sam

您绝对应该阅读Pandas merging 101

【讨论】:

  • 非常感谢它现在可以与合并一起使用。我不知道为什么之前没有
  • @ShahineGreene,很高兴我能帮上忙。下次您有问题时,请在发帖前阅读此guide
猜你喜欢
  • 2021-11-19
  • 2016-12-30
  • 1970-01-01
  • 2021-07-28
  • 2018-06-03
  • 2018-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-02-08
相关资源
最近更新 更多