2016-07-27 75 views
0

我有一个CSV其中有日期格式为:为什么pandas中的日期以不同的格式显示为输入(CSV)数据?

Date 
01/01/1997 
02/01/1997 
03/01/1997 
04/01/1997 

我将数据导入使用df = pd.read_csv('data.csv')

当我看到在数据帧保存的数据出现在不同的数据集格式:

df['Date'] 


Date 
1997-1-1 
1997-1-2 
1997-1-3 
1997-1-4 

我不明白为什么会发生这种情况。

我试着用搜索引擎找&对SOF,但一直没能找到答案......

+0

是什么'DF [ “日”] dtype'显示?我相信'pandas'已经自动识别出这个列包含日期并将它们转换为'datetype'对象。不过,您可能希望以这种格式保存'df [“Date”]',并执行下面的@DeepSpace建议。或者将'dtype = {“Date”:str}'添加到'read_csv()'调用中,以保持这些值不变(以及字符串)。 – dmn

+4

YYYY-MM-DD是ISO 8601日期格式。 http://www.iso.org/iso/home/standards/iso8601.htm – Alexander

+0

@dmn'df ['Date']。dtype'给出'dtype('O')'??如果我通过'dtype = {'GMT':str}'我仍然可以得到'dtype('O')' –

回答

1

因为这是pandas默认时间格式。

你可以通过read_csvdayfirst=True,如可以在documentation可以看出:

dayfirst:布尔值,默认为false DD/MM格式的日期,您可以使用国际和欧洲格式

+0

感谢您的回答。你能解释为什么其他数据集没有发生同样的情况吗?在另一个数据集中,CSV看起来像'12/02/2006',在大熊猫看起来是一样的:'12/02/2006' –

+0

@VinylWarmth尝试@dmn在两个数据集的评论中建议的内容。在第二种情况下,列类型可能是'str'而不是'datetime'。 – DeepSpace

+0

这两个数据集都显示类型为'dtype('O')' –

1

parse_datesread_csv选项可以获取与.csv文件格式相同的数据。关键是dayfirst=True先得到日期,然后你可以相应地改变。 您也可以更改为以下格式:

df.apply(pd.to_datetime, dayfirst=True) 

如需进一步阅读,请参阅文档http://pandas-docs.github.io/pandas-docs-travis/

+0

@VinylWarmth请验证答案,如果这对你有用。 –

相关问题