は、私が最初に店にdf
を書きたい次hdfstore
とデータフレームdf
とdf2
HDFStoreをアップデートできますか?
import pandas as pd
store = pd.HDFStore('test.h5')
midx = pd.MultiIndex.from_product([range(2), list('XYZ')], names=list('AB'))
df = pd.DataFrame(dict(C=range(6)), midx)
df
C
A B
0 X 0
Y 1
Z 2
1 X 3
Y 4
Z 5
midx2 = pd.MultiIndex.from_product([range(2), list('VWX')], names=list('AB'))
df2 = pd.DataFrame(dict(C=range(6)), midx2)
df2
C
A B
0 V 0
W 1
X 2
1 V 3
W 4
X 5
を考えてみましょう。後の時点で
store.append('df', df)
store.get('df')
C
A B
0 X 0
Y 1
Z 2
1 X 3
Y 4
Z 5
私は私が店を更新する別のデータフレームを持つことになります。古いデータを保持しながら、新しいデータフレームと同じインデックス値で行を上書きしたい。私は
store.append('df', df2)
store.get('df')
C
A B
0 X 0
Y 1
Z 2
1 X 3
Y 4
Z 5
0 V 0
W 1
X 2
1 V 3
W 4
X 5
を行うと
は、これがすべてで、私が欲しいものではありません。 (0, 'X')
と(1, 'X')
が繰り返されることに注意してください。私は結合されたデータフレームを操作して上書きすることができますが、これは実現不可能な多くのデータを扱うことが期待されます。
取得するストアを更新するにはどうすればよいですか?
C
A B
0 V 0
W 1
X 2
Y 1
Z 2
1 V 3
W 4
X 5
Y 4
Z 5
あなたは、'A'
の各レベルのためにそれを見'Y'
と 'Z'
が同じであるだろう、'V'
と'W'
は新規であり、'X'
が更新されます。
これを行う正しい方法は何ですか?
はあなたが働くことができます通常のインデックス(マルチインデックスではない)で – MaxU
はい...私の実際のデータはマルチインデックスを持っていますが、単一のインデックスで何かを表示すると、私はそれに満足しています。 – piRSquared
OK、デモの準備に時間が必要です。 – MaxU