1

Pandas DataFrame のインデックス作成については他にもたくさんの質問があるようですが、私が望むタイプの変更を行う方法が見つかりませんでした。次のようなDFがある場合

                Value
 Index1 Index2
 0      1       1.1
 1      2       1.2
 2      3       2.4
 3      1       1.3
 4      2       2.2
 5      3       3.1

index1 のすべてが一意である必要はありません。私はむしろ次のようなものが欲しい

                Value
 Index1 Index2
 0      1       1.1
 0      2       1.2
 0      3       2.4
 1      1       1.3
 1      2       2.2
 1      3       3.1

これを行う方法はありますか?最も簡単な方法は、index1 の値を 3 で割る関数を適用することだと思いますが、関数をインデックスに適用する方法がわかりません。おそらくパンダには、インデックス値を再定義してこのようなグループ化を行うための独自の方法がありますが、両方のインデックスを考慮した場合でも一意です?

4

1 に答える 1

5
import io
import pandas as pd
text = '''\
 Index1 Index2 Value
 0      1       1.1
 1      2       1.2
 2      3       2.4
 3      1       1.3
 4      2       2.2
 5      3       3.1'''

df = pd.read_table(io.BytesIO(text), sep='\s+', index_col=[0, 1])
df.index = pd.MultiIndex.from_tuples(
    [(item[0] // 3, item[1]) for item in df.index],
    names=df.index.names)    
print(df)

収量

               Value
Index1 Index2       
0      1         1.1
       2         1.2
       3         2.4
1      1         1.3
       2         2.2
       3         3.1
于 2013-05-27T20:19:19.713 に答える