python|当txt文件内每行数据个数不一样时,我要怎么读入这个文件,并对列命名。

如题,,例如第一行有3个数据,第二行有5个数据。

我在做购物篮的数据分析,但是第一步就卡住了,读入txt文件时,我的第一行有3个数据,读到第二行的时候,报错说:期待有3个数据,但是实际上有5个数据。

盼回复,谢谢

那就不能用csv 或 pandas读取了,

只能逐行读取整个txt文件的内容按字符串进行分割处理了。

比如txt是

with open(r'xxx.txt','r',encoding='utf-8') as rf:
    for line in rf:
        li = line.strip().split(",")
        print(li)

设定分隔符,使用参数engine='python',用pandas 可以读取的,对列名进行命名用参数names,见例子:

"""
假如文本6.txt数据格式如下,各行中的数据之间空一个空格:
Jack 7.1 6.65 2.8
Bob 8.7 8.9 9.43 8.89 2.68
"""
import pandas as pd 

df = pd.read_csv('6.txt', sep='\s', encoding='utf8', names=[
                 'name', 'v1', 'v2', 'v3', 'v4', 'v5'], engine='python')
print(df)
"""
输出:
name   v1    v2    v3    v4    v5
0  Jack  7.1  6.65  2.80   NaN   NaN
1   Bob  8.7  8.90  9.43  8.89  2.68
"""


如有帮助,请采纳。点击我回答右上角【采纳】按钮。 

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632