【发布时间】:2020-05-27 09:55:50
【问题描述】:
我正在读取一个带有 Pandas 的 excel 文件,其中包含 Title 和 Date 列。当我手动设置这样的测试版本时:
import pandas as pd
df = pd.DataFrame(data={'Title': ['Movie1', 'Movie2', 'Movie3', 'Movie4'],
'Date': ['1991-11', '1991', '1991', '1991-10-31']})
print(df)
它按预期打印,最重要的是,我可以使用print(df.sort_values('Date')) 准确地对其进行排序,下面是我最终想要实现的输出。如您所见,有 YYYY/MM/DD、YYYY/MM 和 YYYY 的实例。
Title Date
1 Movie2 1991
2 Movie3 1991
3 Movie4 1991-10-31
0 Movie1 1991-11
当我尝试使用 read_excel 使用正在读取的实际 Excel 文件运行 print(df.sort_values('Date')) 时,会出现我的问题。我得到TypeError: '<' not supported between instances of 'int' and 'str'
我已将范围缩小到如何将 YYYY-MM 和 YYYY-MM-DD 日期输入 Excel 文件。如果我只使用 YYYY 日期运行它,它就会正确排序。为了正确显示 YYYY-MM 和 YYYY-MM-DD 日期,在 Excel 文件中,我必须在它们前面加上一个反引号。也许这就是导致问题的原因。
希望其他人之前遇到过这种情况。有没有办法使用 Pandas 正确读取带有反引号的日期?
或者,有没有更好的方法将日期输入到 Excel 文件中以供 Pandas 使用? (这可能是一个与 Pandas 问题一样多的 Excel 问题)。
【问题讨论】:
-
'Date'列是对象 dtype (DataFrame.dtypes) 吗? -
是的。奇怪的是,
df.Date.sort_values的作品。它没有给出错误,但也没有正确排序。 -
read_excel 命令使用了哪些参数?
标签: python excel python-3.x pandas