2016-05-10 63 views
2
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中?

+0

你得無法解析最初日期和條時區信息如此:'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

回答

2

我會做這種方式:

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 
+0

我在哪裏將代碼中的data.csv文件的路徑? –

+0

@RyanPraskievicz,我已經更新了我的答案 - 'pd.read_csv(filename,...)' – MaxU

3

我認爲這裏的最好的事情是不是最初解析,所以你可以去除時區信息了,才轉換:

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

+0

感謝您的評論,我能夠使其與我的數據完美合作。在你的答案data.csv在代碼中去哪裏? –

1

您可以將列表理解與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 
+0

當我用你的答案中的代碼使用我的csv文件'df = pd.read_csv(「data.csv」)'(不是你指定的endDate)時,我得到這個錯誤:AttributeError:只能使用帶有字符串值的.str存取器,它在熊貓中使用np.object_ dtype。我如何使endDate成爲一個字符串? –

+0

不要分析日期。 – Alexander