Hãy xem xét những điều sau hdfstore
và dataframes df
và df2
Tôi có thể cập nhật HDFStore không?
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
Tôi muốn đầu tiên viết df
đến cửa hàng.
store.append('df', df)
store.get('df')
C
A B
0 X 0
Y 1
Z 2
1 X 3
Y 4
Z 5
Tại một điểm sau đó trong thời gian tôi sẽ có một dataframe mà tôi muốn để cập nhật các cửa hàng với. Tôi muốn ghi đè lên các hàng có cùng giá trị chỉ mục như trong dataframe mới của tôi trong khi vẫn giữ nguyên các giá trị cũ.
Khi tôi làm
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
Đây không phải là ở tất cả những gì tôi muốn. Lưu ý rằng (0, 'X')
và (1, 'X')
được lặp lại. Tôi có thể thao tác dataframe kết hợp và ghi đè lên, nhưng tôi hy vọng sẽ làm việc với rất nhiều dữ liệu mà điều này sẽ không khả thi.
Làm cách nào để cập nhật cửa hàng để nhận?
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
Bạn sẽ thấy rằng Đối với mỗi mức độ 'A'
, 'Y'
và 'Z'
đều giống nhau, 'V'
và 'W'
là người mới, và 'X'
được cập nhật.
Cách chính xác để thực hiện việc này là gì?
có thể giúp bạn làm việc với các chỉ số bình thường (không phải multiindex)? – MaxU
Có ... dữ liệu thực của tôi có multiindex, nhưng nếu bạn thể hiện điều gì đó với chỉ mục duy nhất, tôi hài lòng với điều đó. – piRSquared
OK, tôi cần một chút thời gian để chuẩn bị bản trình diễn ... – MaxU