考虑CSV文件:
z, a, error, b, error
cm, kg, dl , kg, dl
1.0 , 2.0, 3.0, 4.0, 5.0
1.1 , 2.1, 3.1, 4.1, 5.1
1.2 , 2.2, 3.2, 4.2, 5.2
第一行告诉我们变量是什么。这里的第二行描述了一些关于数据的东西,它是每个变量的单位。一种方法是忽略当前正在执行的第二行。
是否有比忽略第二行更一致的方法?
有!您可以告诉pandas
,您的csv
包含不止一个标题行。
header: int, int的列表,无,默认' infer '
用作列名的行号和数据的开始。[…]头可以是一个整数列表,用于指定列上的多索引的行位置,例如[0,1,3][…]。(熊猫关于
read_csv
的文档)
输入csv
z,a,error,b,error
cm,kg,dl,kg,dl
1.0,2.0,3.0,4.0,5.0
1.1,2.1,3.1,4.1,5.1
1.2,2.2,3.2,4.2,5.2
打开它df = pd.read_csv(path_to_csv, header=[0,1])
你Dataframe
z a error b error
cm kg dl kg dl.1
0 1.0 2.0 3.0 4.0 5.0
1 1.1 2.1 3.1 4.1 5.1
2 1.2 2.2 3.2 4.2 5.2
现在可以方便地访问列和行。
df["z"]
结果
cm
0 1.0
1 1.1
2 1.2
df.loc[1, "z"]
结果
cm 1.1
Name: 1, dtype: float64