5

データフレームがあり、インデックスの値を使用して別の列を作成したいと考えています。
例えば:

df=pd.DataFrame({'idx1':range(0,5), 'idx2':range(10000,10005), 'value':np.random.randn(5)})
df.set_index(keys=['idx1','idx2'], inplace=True)
print df

               value
idx1 idx2           
0    10000 -1.470367
1    10001  0.260693
2    10002 -0.732319
3    10003 -0.116977
4    10004  1.106644

私はこのようなことをしたいと思います:

df['idx1_mod']= df['idx1'] + 100

(本当はもっと複雑なことをしたいのですが、基本的にはインデックスの値が必要です。)

現在、インデックスをリセットして (インデックス フィールドを列として取得するため)、列にアクセスして計算を行い、インデックスを再作成しています。私は明らかな何かを見逃していると確信していますが、私はたくさん見て、それを見逃し続けています!

注 - df.iterrows() も試しましたが、行のコピーが作成され、元のデータフレームを更新できないようです。

4

3 に答える 3

8
df["idx1_mod"] = df.index.get_level_values(0).values + 100
于 2013-11-15T03:15:17.357 に答える