df = pd.read_csv("data.csv", index_col = 'endDate', parse_dates = True)
結束日期忽略日期時間戳大熊貓的時區偏移部分parse_dates在CSV
2016-05-06 15:01:01 -0400
結束日期指數爲進口
2016-05-06 19:01:01
後大熊貓的數據幀如何忽略-0400偏移在csv中?
df = pd.read_csv("data.csv", index_col = 'endDate', parse_dates = True)
結束日期忽略日期時間戳大熊貓的時區偏移部分parse_dates在CSV
2016-05-06 15:01:01 -0400
結束日期指數爲進口
2016-05-06 19:01:01
後大熊貓的數據幀如何忽略-0400偏移在csv中?
我會做這種方式:
filename = '/path/to/file.csv'
df = pd.read_csv(filename, index_col='endDate', parse_dates=['endDate'],
date_parser=lambda x: pd.to_datetime(x.rsplit(' ', 1)[0]))
測試:
data = """\
endDate,val
2016-05-06 15:01:01 -0400,11
2016-05-06 20:20:20 -0100,12
"""
df = pd.read_csv(io.StringIO(data), index_col='endDate', parse_dates=['endDate'],
date_parser=lambda x: pd.to_datetime(x.rsplit(' ', 1)[0]))
輸出:
In [119]: df = pd.read_csv(io.StringIO(data), index_col='endDate', parse_dates=['endDate'],
.....: date_parser=lambda x: pd.to_datetime(x.rsplit(' ', 1)[0]))
In [120]: df
Out[120]:
val
endDate
2016-05-06 15:01:01 11
2016-05-06 20:20:20 12
我在哪裏將代碼中的data.csv文件的路徑? –
@RyanPraskievicz,我已經更新了我的答案 - 'pd.read_csv(filename,...)' – MaxU
我認爲這裏的最好的事情是不是最初解析,所以你可以去除時區信息了,才轉換:
In [14]:
t="""date
2016-05-06 15:01:01 -0400"""
df = pd.read_csv(io.StringIO(t),index_col=[0])
df.index = df.index.str.rsplit().str[0:-1].str.join(' ')
df.index = pd.to_datetime(df.index)
df
Out[14]:
Empty DataFrame
Columns: []
Index: [2016-05-06 15:01:01]
所以這裏的日期導入爲str
所以我們現在使用str.rsplit
刪除時區和然後再次加入,但沒有時區信息。然後,我們可以使用to_datetime
轉換爲datetime
感謝您的評論,我能夠使其與我的數據完美合作。在你的答案data.csv在代碼中去哪裏? –
您可以將列表理解與str.split()一起使用。
df = pd.DataFrame({'endDate': ['2016-05-06 15:01:01 -0400', '2016-05-06 16:01:01 -0400']})
df['endDate'] = pd.to_datetime([date + " " + time
for date, time, _ in df.endDate.str.split()])
>>> df
endDate
0 2016-05-06 15:01:01
1 2016-05-06 16:01:01
當我用你的答案中的代碼使用我的csv文件'df = pd.read_csv(「data.csv」)'(不是你指定的endDate)時,我得到這個錯誤:AttributeError:只能使用帶有字符串值的.str存取器,它在熊貓中使用np.object_ dtype。我如何使endDate成爲一個字符串? –
不要分析日期。 – Alexander
你得無法解析最初日期和條時區信息如此:'df = pd.read_csv(「data.csv」,index_col ='endDate')'和n'df.index = df.index.str.replace('-0400','')'並使用'to_datetime'轉換''df.index = pd.to_datetime(df.index)'應該有效。時區值是否相同? – EdChum