我将字符串转换为日期并保存CSV:
df['date'] = pd.to_datetime(df['date'])
df.to_csv('dates.csv')
但是当我尝试读取CSV时,它会将列作为str:
df = pd.read_csv('dates.csv')
type(df['date'].iloc[0])
<type 'str'>
如何将其保存为日期时间并将其读作日期时间?
答案 0 :(得分:1)
parse_dates
中有read_csv
参数。
parse_dates:boolean,int或名称列表,列表列表或dict 如果为True - >尝试解析索引。 如果[1,2,3] - >尝试将第1,2,3列分别解析为单独的日期列。 如果[[1,3]] - >将第1列和第3列组合在一起并解析为单个日期列。 {'foo':[1,3]} - &gt;将列1,3解析为日期并调用结果'foo' iso8601格式的日期存在快速路径。
所以:
df = pd.read_csv(filename, parse_dates=['date_col_1', 'date_col2', etc...])
一个具体的例子:
df = pd.DataFrame({'date': ['2015-1-1', '2015-2-1', '2015-3-1']})
df['date'] = pd.to_datetime(df['date'])
df.to_csv('dates.csv')
df2 = pd.read_csv('dates.csv')
>>> type(df2['date'].iloc[0])
str
df2 = pd.read_csv('dates.csv', parse_dates=['date'])
>>> type(df2['date'].iloc[0])
pandas.tslib.Timestamp