nut*_*hip 20 csv multi-index pandas
我有一个.csv文件,如下所示:
Male, Male, Male, Female, Female
R, R, L, R, R
.86, .67, .88, .78, .81
Run Code Online (Sandbox Code Playgroud)
我想把它读成df,所以我有:
Male Female
R L R
0 .86 .67 .88 .78 .81
Run Code Online (Sandbox Code Playgroud)
我做了:
df = pd.read_csv('file.csv', header=[0,1])
Run Code Online (Sandbox Code Playgroud)
但headers不削减它.结果如何
Empty DataFrame
Columns: [(Male, R), (Male, R), (Male, L), (Female, R), (Female, R)]
Index: []
Run Code Online (Sandbox Code Playgroud)
然而,标题上的文档说:
(...)Can be a list of integers that specify row
locations for a multi-index on the columns E.g. [0,1,3]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我怎么可能让它工作?
wai*_*kuo 28
我认为问题是你有重复的列:两个(女性,R).
不确定它是否是错误或重复的列是不可接受的.这是给你的解决方法:
In [61]: df = pd.read_csv('test.csv', header=[0, 1], skipinitialspace=True, tupleize_cols=True)
In [62]: df
Out[62]:
(Male, R) (Male, R) (Male, L) (Female, R) (Female, R)
0 0.67 0.67 0.88 0.81 0.81
[1 rows x 5 columns]
Run Code Online (Sandbox Code Playgroud)
In [63]: df.columns = pd.MultiIndex.from_tuples(df.columns)
In [64]: df
Out[64]:
Male Female
R R L R R
0 0.67 0.67 0.88 0.81 0.81
[1 rows x 5 columns]
Run Code Online (Sandbox Code Playgroud)