gpt4 book ai didi

python 替代扫描 ('file' , what=list(...)) 在 R

转载 作者:行者123 更新时间:2023-11-28 16:40:11 25 4
gpt4 key购买 nike

我有以下格式的文件:

10000 
2
2
2
2
0.00
0.00
0 1

0.00
0.01
0 1
...

我想从这个文件创建一个数据框(跳过前 5 行),如下所示:

x1   x2    y1  y2
0.00 0.00 0 1
0.00 0.01 0 1

所以行被转换为列(其中每三行也被分成两列,y1 和 y2)。

在 R 中,我按如下方式执行此操作:

df = as.data.frame(scan(".../test.txt", what=list(x1=0, x2=0, y1=0, y2=0), skip=5))

我正在寻找此 scan(file, what=list(...)) 函数的 python 替代品(pandas?)。它是否存在,或者我是否必须编写更扩展的脚本?

最佳答案

您可以跳过前 5 个,然后以 4 个为一组构建一个 Python 列表,然后将其放入 pandas 作为开始......如果 pandas 提供更好的东西,我不会感到惊讶:

from itertools import islice, izip_longest

with open('input') as fin:
# Skip header(s) at start
after5 = islice(fin, 5, None)
# Take remaining data and group it into groups of 4 lines each... The
# first 2 are float data, the 3rd is two integers together, and the 4th
# is the blank line between groups... We use izip_longest to ensure we
# always have 4 items (padded with None if needs be)...
for lines in izip_longest(*[iter(after5)] * 4):
# Convert first two lines to float, and take 3rd line, split it and
# convert to integers
print map(float, lines[:2]) + map(int, lines[2].split())

#[0.0, 0.0, 0, 1]
#[0.0, 0.01, 0, 1]

关于python 替代扫描 ('file' , what=list(...)) 在 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com