Python 使用Pandas读取列数不规则的CSV文件
我正在尝试读取一个csv文件,它不包含标题行,并且包含不确定数量的列,带有熊猫 我已经搜索了如何解决这个问题,但我找到的所有答案都要求我已经知道(通过打开文件进行搜索)列可以拥有的最大数量,并在Python 使用Pandas读取列数不规则的CSV文件,python,pandas,csv,Python,Pandas,Csv,我正在尝试读取一个csv文件,它不包含标题行,并且包含不确定数量的列,带有熊猫 我已经搜索了如何解决这个问题,但我找到的所有答案都要求我已经知道(通过打开文件进行搜索)列可以拥有的最大数量,并在read\u csv函数上创建name=属性,如下所示: names = ["a", "b", "c", "d"] table = pandas.read_csv('freqs.tsv', header=None, sep='
read\u csv
函数上创建name=
属性,如下所示:
names = ["a", "b", "c", "d"]
table = pandas.read_csv('freqs.tsv', header=None, sep='\t+', names=names)
我的问题是,在不知道最大列数的情况下,是否有任何可能的方法来执行此操作?为了脚本将来的可重用性,如果可能的话,我想概括一下
下面是我用来运行一些测试的示例文本文件:
mathematics 1.548438245 1.4661764369999999 1.429891562
english 1.237816576 1.043399455
physics 2.415563662 11.165497484000001 5.954598265 7.853732762999999 7.929835858
drama 2.0439384830000003 9.81210385 5.068332477 8.579349377 5.962282599999999
health 1.557941553 1.222267933
science 1.550193476
gym 1.240610831 1.149375944 1.899408195 1.3713249980000002
谢谢我得到了以下输出 0 1. 2. 3. 4. 数学 1.54844 1.46618 1.42989 楠 楠 英语 1.23782 1.0434 楠 楠 楠 物理学 2.41556 11.1655 5.9546 7.85373 7.92984 戏剧 2.04394 9.8121 5.06833 8.57935 5.96228 健康 1.55794 1.22227 楠 楠 楠 科学 1.55019 楠 楠 楠 楠 健身房 1.24061 1.14938 1.89941 1.37132 楠
那不是CSV文件。没有逗号。但让我们退一步。一旦数据进入大熊猫,你将如何处理这些数据?Pandas不喜欢可变长度的线,因为您无法对它们进行一般化处理。熊猫就像一个数据库;每列都是一个字段。这些数据不是这样的。完全有可能熊猫不是正确的工具。我只想补充一下上面的评论:这个文件中的间距有意义吗?也就是说,英语的第一列应该是空的吗?或者我们可以假设间距是任意的吗?我的错误是,我的意思是它正在读取一个文本文件,然后将信息转储到一个csv文件中。最初的意图是在以后迭代特定列,并对每个列进行一些计算(计算特定的平均值)。间距是任意的。给定的文本文件具有随机数量的
\t
分隔符。