複数の列に対してget_level_values
の結果を得る方法はありますか?複数の列のパンダget_level_values
考えるDataFrame
次
[(1, 10), (1, 11), (1, 12), (2, 13), (2, 14), (3, 15)]
注:
d
a b c
1 4 10 16
11 17
5 12 18
2 5 13 19
6 14 20
3 7 15 21
私はレベルa
とc
の値(タプルのすなわちリスト)を取得したいです
get_level_values
に複数のレベル(など)を指定することはできません。例えば
:
a_list = df.index.get_level_values('a').values
c_list = df.index.get_level_values('c').values
print([i for i in zip(a_list,c_list)])
[(1, 10), (1, 11), (1, 12), (2, 13), (2, 14), (3, 15)]
が、それは数として面倒を取得1は、所望の各列の上にget_level_values
を使用してzip
それらを一緒にできている回避策はありますdf.index.get_level_values(['a','c']
)
列の成長
- 例
DataFrame
を構築するためのコード:
df = pd.DataFrame({'a':[1,1,1,2,2,3],'b':[4,4,5,5,6,7,],'c':[10,11,12,13,14,15], 'd':[16,17,18,19,20,21]}).set_index(['a','b','c'])
で 'droplevel'のニースの使用のような何かができる代わりに、あなたは—をドロップしたいものの—を維持したいレベルに名前を付けることを好むだろう場合最後のケース:) – IanS