首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列值读取为日期,而不是字符串- Pandas

列值读取为日期,而不是字符串- Pandas
EN

Stack Overflow用户
提问于 2017-09-05 22:20:15
回答 2查看 1K关注 0票数 0

我有一个excel文件,在列Model的那一行中有一个值"9-3“,它是一个字符串值。我仔细检查了excel文件,以使列数据类型为Plain string而不是Date。但是,当我使用read_excel并将其转换为数据框时,值显示为2017-09-03 00:00:00,而不是字符串"9-3“。下面是我读取excel文件的方法:

代码语言:javascript
运行
复制
  table = pd.read_excel('ManualProfitAdjustmentUpdates.xlsx' , header=0, converters={'Model': str})

你知道为什么即使我把转换器设置为str,pandas也不把值当作字符串吗?

EN

回答 2

Stack Overflow用户

发布于 2017-09-05 22:56:40

Excel文件中的普通字符串设置仅影响数据在excel中的显示方式。转换器中的str设置只影响它处理所获取的数据的方式。

若要强制excel文件以字符串形式返回数据,单元格的第一个字符应为撇号。将"9-3“改为”9-3“。

票数 2
EN

Stack Overflow用户

发布于 2017-09-05 23:05:02

问题可能出在excel上。确保将整个列存储为文本,而不仅仅是您正在讨论的单一值。如果excel在任何时候将列另存为数据,它将在该单元格中存储一年,无论显示的是什么或数据类型发生了什么变化。Pandas将整个列作为一种数据类型读取,因此如果日期大于9-3,它将被转换。将日期更改为不带年份的字符串可能很棘手。将excel工作表保存为csv格式可能会更好,然后使用pandas pd.read_csv()。我做了一个测试excel工作簿"book1.xlsx“

代码语言:javascript
运行
复制
9-3    1  Hello
12-1   2  World
1-8    3  Test

然后范围

代码语言:javascript
运行
复制
import pandas as pd
df = pd.read_excel('book1.xlsx',header=0)
print(df)

并正确地取回了我的数据帧。因此,我相信它是优秀的。对不起,这不是最好的答案,但我不认为这是一个错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46057285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档