【问题标题】:Python problems with importing txt files with different structure导入具有不同结构的txt文件的Python问题
【发布时间】:2021-05-03 12:50:22
【问题描述】:

我是 python 编程的新手,在导入逗号分隔的 txt 文件时遇到问题。

txt文件的当前布局如下:

1,2,3

,4,5,6,7

,8,9,10,11

1,2,3

,4,5,6,7

,8,9,10,11

等等等等

我想将其导入并加载为具有以下结构的 pandas 数据框:

标题

1,2,3,4,5,6,7,8,9,10,11

1,2,3,4,5,6,7,8,9,10,11

我已经尝试了很多,但我就是不知道用谷歌搜索什么。

【问题讨论】:

  • 您能否更具体地说明 1) 存储输入的标准。 2)熊猫数据结构应该是什么格式?

标签: python csv txt


【解决方案1】:

我是这样设计的

import pandas as pd

with open("text.txt") as file:
    file = file.read()
data = file.split("\n")
data = [i for i in data if i != ""]
x = ["{}{}{}\n".format(*data) for i in range(len(data)//3)]
x = "".join(x)
with open('text2.txt', 'w') as f:
    f.write("".join(x)+"\n")

df = pd.read_csv("text2.txt", header=None)
print(df)

出来:

   0   1   2   3   4   5   6   7   8   9   10
0   1   2   3   4   5   6   7   8   9  10  11
1   1   2   3   4   5   6   7   8   9  10  11
>>> 

【讨论】:

    【解决方案2】:

    数字的空格分隔输入被视为 -

    lst = list(map(int, input().split())
    

    使用默认索引从列表中创建熊猫系列 -

    srs = pd.Series(lst)
    

    从一个系列中创建一个 pandas 数据框 -

    df = pd.DataFrame(srs)
    

    (我会根据你想要的内容来编辑这篇文章,因为当时还不清楚。)

    【讨论】:

    • 我不知何故找到了解决方案,我将其添加为答案,但感谢您的帮助!
    【解决方案3】:

    我从描述中了解到: 您必须从文件中加载文本,并根据行的前导逗号,将它们连接成一行,然后将其作为数据框加载。

    您可以从文件中加载数据并根据前导 , 将行连接成行

    with open("file.txt","r") as f:                                                                                   
        data=f.read()
    data = data.replace("\n,",",")
    

    接下来,您可以将字符串加载为数据框

    import io import StringIO
    
    data = StringIO(data)
    df = pd.read_csv(data, sep=",")
    

    附: : 如果没有columns 参数,第一行将被视为列名

    【讨论】:

      【解决方案4】:

      不知何故突然很快找到答案,感谢您的帮助!

      data = [i.strip('\n') for i in open('filename.txt')]
      new_data = [' ,'.join(data[i:i+3]) for i in range(0, len(data), 3)]
      f = open('filename.txt', 'w')
      for i in new_data:
         f.write("{}\n".format(i))
      f.close()
      
      df = pd.read_csv("filename.txt",header=None)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-15
        • 1970-01-01
        • 1970-01-01
        • 2019-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多