为什么Python Pandas将excel文件的字符串读取为datetime

cld4siwp  于 2022-12-01  发布在  Python
关注(0)|答案(1)|浏览(163)

我有以下问题。
我有Excel文件如下:

当我用df = pd.read_excel(file,dtype=str)读取文件时,第一行变成了2003-02-14 00:00:00,而其余的都显示出来了。
如何防止pd.read_excel()将其值转换为日期时间或其他值?
谢谢你!

2nbm6dog

2nbm6dog1#

正如@ddejohn在评论中正确地说的那样,你所面临的行为实际上是来自Excel,自动将数据转换为日期。因此,Pandas将不得不将该数据处理为日期,并在稍后处理它以获得你所期望的正确格式,就像你说你不能修改输入的Excel文件一样。
下面是一个简短的脚本,可以使它按您的预期工作:

import pandas as pd

def rev(x: str) -> str:
    '''
    converts '2003-02-14 00:00:00' to '14.02.03'
    '''

    hours = '00:00:00'
    if not hours in x:
        return x
    y = x.split()[0]
    y = y.split('-')
    return '.'.join([i[-2:] for i in y[::-1]])

file = r'C:\your\folder\path\Classeur1.xlsx'
df = pd.read_excel(file, dtype=str)

df['column'] = df['column'].apply(rev)

用实际列名替换df['column']。然后在 Dataframe 中获得所需的格式。

相关问题