gpt4 book ai didi

python pandas合并多个csv文件

转载 作者:行者123 更新时间:2023-12-02 03:26:46 27 4
gpt4 key购买 nike

我有大约 600 个 csv 文件数据集,所有数据集都具有完全相同的列名称 ['DateTime'、'Actual'、'Consensus'、'Previous'、'Revised']、所有经济指标和所有时间序列数据集.

目标是将它们全部合并到一个 csv 文件中。

以“DateTime”作为索引。

我希望此文件索引的方式是时间线方式,这意味着第一个 csv 中的第一个事件日期为 12/18/2017 10:00:00 ,第二个 csv 中的第一个事件日期为 12/29/2017 09:00:00 以及第三个 csv 中的第一个事件,日期为 12/20/2017 09:00:00。

因此,我想先对较晚的内容进行索引,然后再对较新的内容进行索引,等等,尽管它最初来自于源 csv。

我尝试合并其中的 3 个作为实验,问题是“日期时间”,因为它将这 3 个打印在一起,如下所示 ('12/18/2017 10:00:00', '12/29/2017 09:00:00', '2017/12/20 09:00:00')这是代码:

import pandas as pd


df1 = pd.read_csv("E:\Business\Economic Indicators\Consumer Price Index - Core (YoY) - European Monetary Union.csv")
df2 = pd.read_csv("E:\Business\Economic Indicators\Private loans (YoY) - European Monetary Union.csv")
df3 = pd.read_csv("E:\Business\Economic Indicators\Current Account s.a - European Monetary Union.csv")

df = pd.concat([df1, df2, df3], axis=1, join='inner')
df.set_index('DateTime', inplace=True)

print(df.head())
df.to_csv('df.csv')

最佳答案

考虑使用read_csv() args、index_colparse_dates,用于在导入期间创建索引并将其格式化为日期时间。然后运行您需要的水平合并。下面假设日期位于 csv 的第一列中。最后使用 sort_index()在最终数据帧上对日期时间进行排序。

df1 = pd.read_csv(r"E:\Business\Economic Indicators\Consumer Price Index - Core (YoY) - European Monetary Union.csv",
index_col=[0], parse_dates=[0])
df2 = pd.read_csv(r"E:\Business\Economic Indicators\Private loans (YoY) - European Monetary Union.csv",
index_col=[0], parse_dates=[0])
df3 = pd.read_csv(r"E:\Business\Economic Indicators\Current Account s.a - European Monetary Union.csv",
index_col=[0], parse_dates=[0])

finaldf = pd.concat([df1, df2, df3], axis=1, join='inner').sort_index()

对于 DRY-er 方法,尤其是在数百个 csv 文件中,请使用列表理解

import os
...
os.chdir('E:\\Business\\Economic Indicators')

dfs = [pd.read_csv(f, index_col=[0], parse_dates=[0])
for f in os.listdir(os.getcwd()) if f.endswith('csv')]

finaldf = pd.concat(dfs, axis=1, join='inner').sort_index()

关于python pandas合并多个csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48051100/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com