使用python csv或pandas处理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 

第一行告诉我们变量是什么。这里的第二行描述了一些关于数据的东西,它是每个变量的单位。一种方法是忽略当前正在执行的第二行。

是否有比忽略第二行更一致的方法?

有!您可以告诉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

最新更新