Say*_*uda 6 python csv datetime pandas
我有大约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个作为实验,而问题是'DateTime',因为它将这些中的3个打印在一起就像这样('12/18/2017 2017 10:00:00','12/29/2017 2017 09 :00:00','12/20/2017 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')
Run Code Online (Sandbox Code Playgroud)
考虑使用read_csv()
args,index_col和parse_dates在导入期间创建索引并格式化为datetime.然后运行所需的水平合并.下面假设日期在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()
Run Code Online (Sandbox Code Playgroud)
对于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()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20911 次 |
最近记录: |