【问题标题】:Combining two csv files using pandas使用 pandas 组合两个 csv 文件
【发布时间】:2018-02-14 14:52:04
【问题描述】:

谁能帮我检查一下我的代码有什么问题。 我希望它将两个 csv 文件合并为一个 csv 文件。

我已经尝试 google,但我仍然无法合并它,它会创建新文件但不会显示任何内容。 https://stackoverflow.com/a/16266144/7624469

a.csv

ID    User
A1    Fi
A2    Ki

b.csv

ID    User
A4    Fsdi
A5    Kisd

我想要的输出是这样的

combined.csv

ID    User
A1    Fi
A2    Ki
A4    Fsdi
A5    Kisd

test.py

import pandas, sys
import pandas as pd


a = pd.read_csv("C:/JIRA Excel File/a.csv")
b = pd.read_csv("C:/JIRA Excel File/b.csv")

merged = a.merge(b, on='ID')

merged.to_csv('C:/JIRA Excel File/result.csv', index=False)

【问题讨论】:

    标签: python pandas csv dataframe concat


    【解决方案1】:

    这里最好使用pd.concat来组合这些帧,而不是merge

    merged = pd.concat([a,b])
    

    您的数据的玩具示例:

    a = pd.DataFrame([['Fi'],['Ki']],columns=['User'], index=['A1','A2'],) #'ID')
    b = pd.DataFrame([['Fi'],['Ki']],columns=['User'], index=['A4','A5'],) #'ID')
    pd.concat([a,b])
    

    将输出:

        User
    A1  Fi
    A2  Ki
    A4  Fi
    A5  Ki
    

    【讨论】:

    • 会显示这个错误 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 53: invalid start byte
    • unicode 错误与您的原始问题无关。将正确的编码指定为read_csv
    • 接受的答案中建议的concatappend 之间的实际区别是什么?
    【解决方案2】:

    使用df.append:

    out = df1.append(df2)
    print(out)
    
       ID  User
    0  A1    Fi
    1  A2    Ki
    0  A4  Fsdi
    1  A5  Kisd
    
    with open('C:/JIRA Excel File/result.csv', 'w', encoding='utf-8') as f:
        out.to_csv(f, index=False)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 1970-01-01
      • 2013-04-22
      • 2020-11-22
      • 1970-01-01
      相关资源
      最近更新 更多