需要解析/合并CSV和Excel文件,并创建一个包含两个数据集差异的新表格
抱歉,我刚接触Python和Stack Overflow,遇到了一些问题。
我有一个文本文件和一个Excel文件,需要根据它们共有的两列(日期和ID)来合并这两个文件。它们的列名虽然代表同样的内容,但却不同。
这是CSV文件的内容:
测试日期 | ID | 值1 |
---|---|---|
2024-03-12 | a | 1 |
2024-03-13 | b | 2 |
2024-03-14 | c | 3 |
这是Excel文件的内容(表头在第五行):
无关1 | ID | 无关2 | 日期 | 值2 |
---|---|---|---|---|
无关内容 | a | 无关内容 | 3/12/2024 | 2 |
无关内容 | b | 无关内容 | 3/13/2024 | 4 |
无关内容 | c | 无关内容 | 3/14/2024 | 6 |
我的目标是创建一个像这样的合并结果:
日期 | ID | 值1 | 值2 | 差异 | 超过2? |
---|---|---|---|---|---|
2024-03-12 | a | 1 | 2 | 1 | 否 |
2024-03-13 | b | 2 | 4 | 2 | 否 |
2024-03-14 | c | 3 | 6 | 3 | 是 |
我尝试过一些方法,抱歉没能成功。我最终写了一个把CSV转换成Excel文件的代码,并试图从那里合并数据,但我一直没能让我的脚本同时从两个来源提取数据。等我能更新这个帖子时,会把我尝试的代码发上来,谢谢大家!
1 个回答
0
如果你一步一步来,这个过程其实挺简单的:
import pandas
df1 = pandas.read_csv("test.csv")
df2 = pandas.read_excel("test.xlsx", skiprows=4)
df3 = pandas.merge(df1, df2, on="id")
df3 = df3[["id", "date", "values 1", "values 2"]]
df3["discrepancy"] = df3["values 2"] - df3["values 1"]
df3["Over 2?"] = df3["discrepancy"] > 2
print(df3)