df.columns = ['_'.join(col) for col in df.columns]
print (df)
Winners_2016 Winners_2015 Winners_2014 Runnerup_2016 \
Country Sport
india badminton 1 1 1 1
wrestling 1 1 1 1
Runnerup_2015 Runnerup_2014
Country Sport
india badminton 1 1
wrestling 1 1
In [45]: %timeit ['_'.join(col) for col in df.columns]
The slowest run took 7.82 times longer than the fastest. This could mean that an intermediate result is being cached.
100000 loops, best of 3: 4.05 µs per loop
In [44]: %timeit ['{}_{}'.format(x,y) for x,y in zip(df.columns.get_level_values(0),df.columns.get_level_values(1))]
The slowest run took 4.56 times longer than the fastest. This could mean that an intermediate result is being cached.
10000 loops, best of 3: 131 µs per loop
In [46]: %timeit df.columns.to_series().str.join('_')
The slowest run took 4.31 times longer than the fastest. This could mean that an intermediate result is being cached.
1000 loops, best of 3: 452 µs per loop
也可以使用列表理解:
另一个使用convert} ,然后调用^{} 的解决方案:
^{pr2}$columns
^{我对时间安排非常感兴趣:
试试这个:
get_level_values
是您只需获得结果多重索引的一个级别所需的内容。在旁注:您可以尝试按原样处理数据。我很讨厌熊猫,但我很讨厌它。在
相关问题 更多 >
编程相关推荐