【问题标题】:Importing numbers as string into a dataframe from text将数字作为字符串从文本导入数据框
【发布时间】:2018-11-07 21:03:06
【问题描述】:

我正在尝试将文本文件作为数据框导入 Python。 我的文本文件基本上由两列组成,两列都是数字。

问题是:我希望将其中一列作为字符串导入(因为许多“数字”以零开头,例如 0123,稍后我将需要此列将 df 与另一列合并)

我的代码如下所示:

mydata = pd.read_csv("text_file.txt", sep = "\t", dtype = {"header_col2": str})

但是,我仍然丢失了输出中的零,因此将 4 位数字转换为 3 位数字。

我假设我的导入代码有问题,但我还没有找到任何解决方案。

我是 python/pandas 的新手,因此非常感谢任何帮助/建议!

【问题讨论】:

  • 在将数据放入数据框之前将其转换为您想要的格式。我会读入数据,对其进行操作,然后将其输入数据帧,而不是立即将其读入数据帧。
  • 谢谢,问题解决了!

标签: python string pandas dataframe import


【解决方案1】:

很难理解为什么您的原始代码不起作用:

from io import StringIO    
import pandas as pd    

# this mimics your data
mock_txt = StringIO("""header_col2\theader_col3
0123\t5
0333\t10
""")

# same reading as you suggested 
df = pd.read_csv(mock_txt, sep = "\t", dtype = {"header_col2": str})

# are they really strings?
assert isinstance(df.header_col2[0], str)
assert isinstance(df.header_col2[1], str)

附:与 SO 一样 - 很高兴在原始帖子中拥有一些数据和一个带有代码的最小工作示例。

【讨论】:

  • 您好,感谢您的反馈! akilat90 上面的评论,重定向到一个相关的问题,解决了我的问题。
  • 很高兴它已解决,但@akilat90 链接的哪一部分起了作用?是使用dtype 而不是converters
猜你喜欢
  • 2017-09-18
  • 2012-02-22
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2012-10-28
  • 2012-04-20
相关资源
最近更新 更多