【问题标题】:Create pandas dataframe from .txt file with data per row从 .txt 文件创建熊猫数据框,每行数据
【发布时间】:2021-05-07 23:20:02
【问题描述】:

我有一个 .txt 文件,其中的数据排序如下:

R11
R12
R13
R14
R15
R16
R17
R18
R19
R20

我需要遍历文本文件中的行来填充每行的列。 换句话说,需要将数据转换为如下所示的 pandas DataFrame:

| Column1 | Column2 | Column3 | Column4 | Column5 |
|---------|---------|---------|---------|---------|
| R11     | R12     | R13     | R14     | R15     |
| R16     | R17     | R18     | R19     | R20     |

我的代码以以下开头。运行后,我现在有一个名为 data 的所有行的列表,但是如何获取上面的 pandas DataFrame 作为输出?

with open('data.txt','r') as file:
    data = file.read().split('\n')

【问题讨论】:

  • pd.DataFrame(pd.read_csv('data.txt', names=[0]).values.reshape(-1,5))

标签: python pandas dataframe txt


【解决方案1】:

您可以使用pd.read_csv和名称column名称读取文本文件

pd.DataFrame(pd.read_csv('data.txt', names=[0]).values.reshape(-1,5), columns = ['Column1','Column2', 'Column3', 'Column4', 'Column4'])

【讨论】:

  • 感谢您的回答。在真实数据中,这个答案没有给出我想要的精确输出。空行被排除在外,0 到 1 之间的浮点数都为 0。因此,我接受了另一个答案。但是有了这些数据,你的答案就完美了。谢谢!
【解决方案2】:

你快到了! 将数据作为列表读取后,您可以将列表拆分为 5 秒,然后将其传递给 pd.DataFrame()

with open('data.txt','r') as file:
    data = file.read().split('\n')

# split the list in chunks of 5s
chunks = [data[x:x+5] for x in range(0, len(data), 5)]

# pass the chunks in pd.DataFrame and specify the columns names of the OP:
pd.DataFrame(chunks, columns=["Column1", "Column2", "Column3", "Column4", "Column5"])

附:我假设最后一列有错字,因为它似乎又被命名为 Column4,但在这里我将其命名为 Column5。如果您需要,您始终可以将其命名为 Column4。

【讨论】:

  • 这是一个错字,已编辑。效果很好,符合我最初的尝试。谢谢!
猜你喜欢
  • 2022-09-24
  • 2012-05-19
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 2018-11-04
  • 2014-11-22
相关资源
最近更新 更多