有没有办法像这样读取这样的文件并跳过列索引(1-5)?我正在使用read_csv。
24.0 1:0.00632 2:18.00 3:2.310 4:0 5:0.5380
21.6 1:0.02731 2:0.00 3:7.070 4:0 5:0.4690
预期表格读取:
24.0 0.00632 18.00 2.310 0 0.5380
答案 0 :(得分:2)
read_csv
不会按照您想要的方式处理,因为它不是CSV。
你可以这样做。
pd.DataFrame([[chunk.split(':')[-1] for chunk in line.split()] for line in f])
答案 1 :(得分:1)
您的数据结构奇特。给定冒号索引分隔符,您可以通过通常的read_csv
将文件作为文本读取。然后,循环遍历数据框中的每一列(第一列除外),将字符串拆分为':',取第二个元素表示所需的值,并将该值转换为浮点数(全部通过列表推导完成)
df = pd.read_csv('data.txt', sep=' ', header=None)
>>> df
0 1 2 3 4 5
0 24.0 1:0.00632 2:18.00 3:2.310 4:0 5:0.5380
1 21.6 1:0.02731 2:0.00 3:7.070 4:0 5:0.4690
df.iloc[:, 1:] = df.iloc[:, 1:].applymap(lambda s: float(s.split(':')[1]))
>>> df
0 1 2 3 4 5
0 24.0 0.00632 18 2.31 0 0.538
1 21.6 0.02731 0 7.07 0 0.469