我正在寻找将这些数据整理为可作为熊猫数据框输入以进行进一步分析的最佳方法。当前数据的前几行的结构如下(有几千行数据):
4 0 1. 1 37.0 10.000 0 3 18. 40.0 7 4 0. 0. 1.
5 0 1. 0 27.0 4.000 0 4 14. 20.0 6 4 0. 0. 1.
11 0 1. 0 32.0 15.000 1 1 12. 12.5 1 4 0. 0. 1.
16 0 1. 1 57.0 15.000 1 5 18. 12.5 6 5 0. 0. 1.
23 0 1. 1 22.0 0.750 0 2 17. 7.5 6 3 0. 0. 1.
29 0 1. 0 32.0 1.500 0 2 17. 7.5 5 5 0. 0. 1.
44 0 1. 0 22.0 0.750 0 2 12. 12.5 1 3 0. 0. 1.
45 0 1. 1 57.0 15.000 1 2 14. 20.0 4 4 0. 0. 1.
47 0 1. 0 32.0 15.000 1 4 16. 20.0 1 2 0. 0. 1.
49 0 1. 1 22.0 1.500 0 4 14. 12.5 4 5 0. 0. 1.
50 0 1. 1 37.0 15.000 1 2 20. 20.0 7 2 0. 0. 1.
55 0 1. 1 27.0 4.000 1 4 18. 12.5 6 4 0. 0. 1.
列如下:
标识符,未使用,常数,z1,z2,z3,z4,z5,z6,未使用,z7, z8,yPT,未使用,未使用
因此,并不是数据中的每一列都是重要的,但是如果可以将其转换为pandas数据框,我可以轻松地解决这一点。
答案 0 :(得分:1)
尝试(如果您更方便,也可以从文件中读取它):
import pandas as pd
input_='''
4 0 1. 1 37.0 10.000 0 3 18. 40.0 7 4 0. 0. 1.
5 0 1. 0 27.0 4.000 0 4 14. 20.0 6 4 0. 0. 1.
11 0 1. 0 32.0 15.000 1 1 12. 12.5 1 4 0. 0. 1.
16 0 1. 1 57.0 15.000 1 5 18. 12.5 6 5 0. 0. 1.
23 0 1. 1 22.0 0.750 0 2 17. 7.5 6 3 0. 0. 1.
29 0 1. 0 32.0 1.500 0 2 17. 7.5 5 5 0. 0. 1.
44 0 1. 0 22.0 0.750 0 2 12. 12.5 1 3 0. 0. 1.
45 0 1. 1 57.0 15.000 1 2 14. 20.0 4 4 0. 0. 1.
47 0 1. 0 32.0 15.000 1 4 16. 20.0 1 2 0. 0. 1.
49 0 1. 1 22.0 1.500 0 4 14. 12.5 4 5 0. 0. 1.
50 0 1. 1 37.0 15.000 1 2 20. 20.0 7 2 0. 0. 1.
55 0 1. 1 27.0 4.000 1 4 18. 12.5 6 4 0. 0. 1.
'''
input_arr=[[cell for cell in row.split(" ") if cell!=""] for row in input_.split("\n") if row!=""]
hdrs=["identifier", "not used", "constant","z1", "z2", "z3", "z4", "z5", "z6", "not used", "z7", "z8", "yPT", "not used", "not used"]
df=pd.DataFrame(data=input_arr, columns=hdrs)
df=df[[col for col in df.columns if col!="not used"]]
print(df.head(10))
输出:
identifier constant z1 z2 z3 z4 z5 z6 z7 z8 yPT
0 4 1. 1 37.0 10.000 0 3 18. 7 4 0.
1 5 1. 0 27.0 4.000 0 4 14. 6 4 0.
2 11 1. 0 32.0 15.000 1 1 12. 1 4 0.
3 16 1. 1 57.0 15.000 1 5 18. 6 5 0.
4 23 1. 1 22.0 0.750 0 2 17. 6 3 0.
5 29 1. 0 32.0 1.500 0 2 17. 5 5 0.
6 44 1. 0 22.0 0.750 0 2 12. 1 3 0.
7 45 1. 1 57.0 15.000 1 2 14. 4 4 0.
8 47 1. 0 32.0 15.000 1 4 16. 1 2 0.
9 49 1. 1 22.0 1.500 0 4 14. 4 5 0.