我的数据由于某些Excel格式问题而被更改。当-
中包含一个数字时,它会自动更改为日期格式。
例如,在Excel中,1-1
更改为01-Jan
,25-2
更改为25-Feb
。
但是带有破折号或其他值(如1A
和1001
的数据是完整的。当我将数据加载到Spyder中时,它实际上再次将格式更改为datetime
类型。
首先,数据在 Excel 中如下所示:
Name ID Value
Hello 1A 22
Hi 01-Jan 20
What 02-Jan 12
Is 1001 10
Up 25-Mar 11
数据以Python的当前年份(2019)的 Pandas Dataframe 格式显示,代码如下:
import pandas as pd
FAC_sheet = pd.read_excel('data', dtype=str)
Name ID Value
Hello 1A 22
Hi 2019-01-01 00:00:00 20
What 2019-01-02 00:00:00 12
Is 1001 10
Up 2019-03-25 00:00:00 11
有没有一种方法可以仅更改日期格式奇怪的值并使其余部分保持不变?所需的输出是:
Name ID Value
Hello 1A 22
Hi 1-1 20
What 1-2 12
Is 1001 10
Up 3-25 11
答案 0 :(得分:0)
您可以尝试通过以下方法尝试并替换熊猫中的Date行为自动转换(将Date替换为列名):
pandas.read_excel(xlsx, sheet, converters={'Date': str})
从文档(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html): 转换器:dict,可选 用于转换某些列中的值的函数的字典。键可以是整数或列标签。