使用 Pandas 将三个单独的 CSV 文件中的特定元素合并为一个 CSV 文件

甲虫汁

我有以下三个 CSV 文件:

1.csv:
id,status,env
aaaa,PASS,PROD
aaaa,PASS,DEV
bbbb,PASS,PROD
bbbb,PASS,DEV

2.csv:
id,successPct24,env
aaaa,"99.73",PROD
aaaa,"99.89",DEV
bbbb,"100.00",PROD
bbbb,"92.53",DEV

3.csv
id,successPctMonth,env
aaaa,"99.70",PROD
aaaa,"99.90",DEV
bbbb,"100.00",PROD
bbbb,"99.91",DEV

目标是创建一个格式如下的单个 CSV 文件:

id,status,successPct24,successPctMonth,env

因此,使用我的示例 CSV 文件,单个 CSV 应如下所示:

aaaa,PASS,99.73,99.7,PROD
aaaa,PASS,99.89,99.9,DEV
bbbb,PASS,100.0,100.0,PROD
bbbb,PASS,92.53,99.91,DEV

我尝试使用以下 Python 代码来完成此操作...

import pandas as pd

csv1 = pd.read_csv("1.csv", index_col=[0], usecols=["id", "status"])

csv2 = pd.read_csv("2.csv", index_col=[0], usecols=["id", "successPct24"])

csv3 = pd.read_csv("3.csv", index_col=[0], usecols=["id", "successPctMonth", "env"])

firstcsv = csv1.join(csv2)

finalcsv = firstcsv.join(csv3)

# print (finalcsv)

finalcsv.to_csv('4.csv', index=True)

...但生成的单个 CSV 不正确:

aaaa,PASS,99.73,99.7,PROD
aaaa,PASS,99.73,99.9,DEV
aaaa,PASS,99.89,99.7,PROD
aaaa,PASS,99.89,99.9,DEV
aaaa,PASS,99.73,99.7,PROD
aaaa,PASS,99.73,99.9,DEV
aaaa,PASS,99.89,99.7,PROD
aaaa,PASS,99.89,99.9,DEV
bbbb,PASS,100.0,100.0,PROD
bbbb,PASS,100.0,99.91,DEV
bbbb,PASS,92.53,100.0,PROD
bbbb,PASS,92.53,99.91,DEV
bbbb,PASS,100.0,100.0,PROD
bbbb,PASS,100.0,99.91,DEV
bbbb,PASS,92.53,100.0,PROD
bbbb,PASS,92.53,99.91,DEV

我确定我遗漏了一个参数,或者我配置错误。对此请求的任何帮助将不胜感激。

德米特里 K。

你需要加入 2 列 -'id' and 'env'代码:

df1 = pd.read_csv("1.csv")
df2 = pd.read_csv("2.csv")
df3 = pd.read_csv("3.csv")
finalcsv = df1.merge(df2, 'left', on=['id', 'env']).merge(df3, 'left', on=['id', 'env'])

结果:

    id      status  env     successPct24    successPctMonth
0   aaaa    PASS    PROD    99.73           99.70
1   aaaa    PASS    DEV     99.89           99.90
2   bbbb    PASS    PROD    100.00          100.00
3   bbbb    PASS    DEV     92.53           99.91

如果您需要其他列顺序:

finalcsv = finalcsv[['id', 'status', 'successPct24', 'successPctMonth', 'env']]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Pandas将每个文件夹的所有csv文件合并为一个大csv文件

Python Pandas-将目录中的csv文件合并为一个

将多个CSV合并为一个,文件名作为Pandas中的列名

如何使用tcl将多个csv文件合并为一个csv文件

将两个csv文件与python pandas比较,并使用产生的数据框创建第三个文件

使用python和pandas将CSV文件中的三列合并为一列

从多个csv文件中抓取一个特定的列并合并为一个

如何使用一个主键将不同的CSV文件合并为新的CSV文件

创建一个循环以生成从三个单独的 CSV 文件读取的三个单独的图

使用AWK将两个CSV文件合并为一个

如何使用pandas根据列ID将多个csv文件合并为1个文件

使用PowerShell将多个CSV文件合并为一个

使用Python将两行合并为一个csv文件

如何使用python将三个csv文件数据写入具有一个日期列和三个数据列的一个csv文件中

将多个csv文件合并为一个

将 2 个 CSV 文件合并为一个 CSV 文件

使用awk在三个字段上合并两个csv文件也会创建一个新的csv文件

合并两个csv文件,以使用两个现有csv文件中的选定行生成第三个csv文件

将单列CSV文件合并为一个14列的CSV文件

将多个csv文件合并为一个csv文件

从 csv 文件中读取列并使用 Pandas 将它们放入一个新的 csv 文件中

如何将多个数据帧合并为一个并将其输出到pandas中的csv文件中?

使用pyspark将多个csv文件合并到Azure Blob存储中的一个csv文件

将一个文本文件文件夹与一个单元格中的每个内容合并为一个CSV文件

如何通过使用R将每个文件的数据添加为另一行,从而将不同的.csv文件合并为一个完整文件?

使用glob后如何将数据帧合并到一个csv文件中?

将CSV文件合并为一个文件,没有重复的标题

将两个CSV文件合并为一个

通过ID将两个CSV文件与大熊猫合并为一个