Pandas.read_csv 将所有文件读入一列
Posted
技术标签:
【中文标题】Pandas.read_csv 将所有文件读入一列【英文标题】:Pandas.read_csv reads all of the file into one column 【发布时间】:2015-09-04 16:31:50 【问题描述】:我有一个格式为 "...","...","..."... 的 csv 文件,包含 40 多列。 当我使用这个简单的代码时,它只给了我一个大钥匙。我已经搞砸了一个多小时,我不知道如何使用 pandas 来解决这个问题。
dataframe = pd.read_csv(filePath, header=0, encoding='iso-8859-1')
datakeys = dataframe.keys();
print(datakeys)
【问题讨论】:
如果您可以发布 csv 的前几行将会很有帮助,以及您对header=0
的意图是什么,这只是意味着第一行是标题,您是否打算 @987654324 @ 表示没有标题,这是你的错误吗?
我只是把标题放在那里向其他人清楚地表明 csv 的第一行是标签。我无法发布具体数据,因为 HIPPA 很烂,但它遵循我发布的格式。用字符串或数字。在标签中,空格由下划线指定,并且没有数字。熊猫不应该..你知道..根据自己的逗号分隔值吗?
可以配置分隔符吗?您假设它是 ',' 但某些工具取决于系统设置或可以配置并使用 ';'默认情况下
@V15I0N 我根据 API 尝试过,但没有运气。 pandas.pydata.org/pandas-docs/stable/generated/…
sep
的默认值是 ','
,所以它应该可以工作,但除非你发布原始输入数据,否则它现在只是一个猜谜游戏
【参考方案1】:
我通过指定read_csv
和header=None
的names
字段解决了这个问题。
fields = ["colA", "colB"];
df = pd.read_csv("/tmp/data.csv", sep="|", header=None, names=fields)
【讨论】:
【参考方案2】:由于这些答案没有让我满意,但我找到了另一种方法,我也在这里发布我的解决方案:
所以我使用“§”作为分隔符和pandas-1.1.5
。但是,问题与提问者描述的相同(分隔符除外)。我的解决方案是更新熊猫:
pip3 install --upgrade pandas
之后,与
df = pd.read_csv(input_file_path, sep="§", encoding='utf8', quotechar='"', engine="python")
一切顺利。
【讨论】:
【参考方案3】:我通过编写脚本重新格式化 .csv 解决了这个问题 .csv 中有一个小的格式问题导致 Panda 基本上什么都不做。奇怪
【讨论】:
【参考方案4】:这是一个老问题,但由于我最近遇到了同样的问题,我想我发布了为我解决的问题:
问题是错误地设置了sep=
参数。当放置适当的分隔符时(仔细检查您的数据文件是否有正确的分隔符!),它将文件读入正确的列数。
也许它也可以帮助其他人。
【讨论】:
以上是关于Pandas.read_csv 将所有文件读入一列的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 pandas.read_csv 读取 csv 文件时将 pandas.dataframe 中的元素转换为 np.float?
如何在使用 pandas.read_csv 读取 csv 文件时将 pandas.dataframe 中的元素转换为 np.float?