相关文章推荐

从文件名中改变日期格式,并在多个csv文件中加入每小时的数据

5 人关注

我有多个csv文件,这些文件的名称显示日期,如

"cd191108.csv", "cd191120.csv"

而csv文件包含这样的数据。

GMT + TZ;Value
10:43:00;10
10:45:00;20

我想做的是将所有的csv文件合并到pandas中的一个数据框架中,但其中的 "时间 "列表示来自文件名的日期和来自文件内容的小时,例如

Time;value
2019-11-08 10:43:00;10

我通过像下面这样的方式。

import os
import pandas as pd
path = os.getcwd()
files = os.listdir(path)
files_csvf = [f for f in files if f[-3:] == 'csv']
files_csv
dfs=[]
for f in files_csv:
    data = pd.read_csv(f,sep=";",index_col=False)
    data['datetime']=pd.to_datetime(f[2:8])+pd.to_timedelta(data['GMT + TZ'])
    data=data.drop('GMT + TZ',axis=1)
    dfs.append(data)
df=pd.concat(dfs,ignore_index=True)

(refered to 如何将文件名中的日期添加到时间列中,使之成为日期时间列?Python Pandas)

However, the result of 'Time' columns is following:

2008-11-19 10:43:00

而不是我期望的那样

2019-11-08 10:43:00

我试着用 "to_datetime "来纠正,但它不起作用。

df['Time'] =  pd.to_datetime(df['Time']
    
2 个评论
通过 yearfirst=True) so df['Time'] = pd.to_datetime(df['Time'], yearfirst=True)`。
谢谢你,David!我还发现df['Time'] = pd.to_datetime(df['Time'], format='%y%m%d')的工作也很好!很高兴能解决我的第一个工作;)
python
pandas
blackbeaans
blackbeaans
发布于 2020-07-18
1 个回答
smci
smci
发布于 2020-07-18
已采纳
0 人赞同
 
推荐文章