2
私のデータフレームの列をグループにまとめたいと思います。一般的に、私が分析をしているときには、識別子変数、独立変数、従属変数などがあるかもしれません。そして、共通の見出しの下にそのようなすべての変数をまとめるのが組織的にはいいと思います。ここでDataFrame列をMultiIndexに編成する
は、例えば、これは正確に動作しません
import string
import pandas as pd
df = pd.DataFrame({"a": list(string.ascii_lowercase[:5]),
"b" : np.arange(0,5),
"c":list(string.ascii_uppercase[:5]),
"d" : np.arange(5,10)})
index1 = pd.MultiIndex.from_product([["Letter"], ["a","c"]])
index2 = pd.MultiIndex.from_product([["Number"], ["b", "d"]])
index = index1.union(index2)
df.columns = index
です。
Letter Number
a c b d
0 a 0 A 5
1 b 1 B 6
2 c 2 C 7
3 d 3 D 8
4 e 4 E 9
代わりに、私は、インデックスを変更する前に、彼らが第2のレベルのマルチインデックスと整列するように列を並べ替えること
df = df[index.get_level_values(1)]
df.columns = index
を追加する必要があります。これはちょっとした気がして、私はちょうどこれを行うより良い方法があるのだろうかと思っていた。ここ
'用のDF =のDF [index.get_level_values(1 )] '盗まれたようですか? –
私は盗聴について知りません...おそらく不必要かもしれません。私は列をグループ化して複数のインデックスを追加するためのクリーンな構文を探しています。 「 '' pd.MultiIndex.from_product'''でもぎこちないようだ。列のグループごとに複数のインデックスを作成する必要があります。私はちょうど各パーティションの列とキーのパーティションを指定し、階層的なデータフレームを取得したい。 – Ben