2017-10-11 676 views
1

我在excel文件中有一些数据,并使用pandas read_excel方法读取它。 但是我想读取所有列中的全部数据作为字符串,包括日期列。Python Pandas - 读取日期列为字符串

问题是我想以原始格式保留日期列作为字符串。例如,我在Excel中有'31 .01.2017',它的格式是日期,我想在我的数据框中有'31 .01.2017'。

我认为使用dtype = str的read_excel的dytpes参数是正确的方法。但熊猫然后读取日期列日期时间,然后将其转换为字符串。所以最后我在我的数据框中总是有'2017-01-31 00:00:00'。

有没有办法做到这一点?

回答

0
df['date_column'] = df['date_column'].dt.strftime('%d.%m.%Y') 
+0

问题是,在阅读数据后,我不知道什么原始日期格式是 – nova

+0

我不知道什么是犹豫不只是通过打开文件来查看日期格式,然后使用'strftime',似乎效率低下。在这点上你有几个选择。如果参数'converters = {'Date':str}'不起作用,那么在读取excel之前先转换为csv。 –

+0

但是我怎样才能查看格式是什么?你的意思是打开一些其他包的文件,或者我想念一些东西... – nova

1

正如您试图将日期列保留在初始类型中,以下代码可能会对您有所帮助。在我们插入变量“的cols”的所有列,除了日期列,然后在下面两行的第一行,我们只是改变了其他列的类型:

cols=[i for i in df.columns if i not in ["Date_column"]] 

for col in cols: 
    df[col]=df[col].astype('category') 

希望它能帮助! :-)

+0

但是你正在遍历(!)读取excel文件之后的数据帧。在阅读文件时发生问题。因此,您的数据框中存储了日期,并且它们已经丢失了初始格式 – nova

+0

而实际上将所有其他列的类型更改为分类的意义何在? – nova