Как я могу добавить фрейм данных в другой фрейм данных, который уже сохранен в файле, не загружая его из файла? (Python 3.6 & Pandas 1.0.1)
Пример:
import pandas as pd
data = [[['A01','A02'],'B0','C0'],[['A11','A12'],'B1','C1'],[['A21','A22'],'B2','C2']]
df = pd.DataFrame(data,columns=['A','B','C'])
data2 = [[['A31','A32'],'B3','C3'],[['A41','A42'],'B4','C4'],[['A51','A52'],'B5','C5']]
df2 = pd.DataFrame(data2,columns=['A','B','C'])
print(df.append(df2,ignore_index=True))
#version 1:
store = pd.HDFStore('test.h5','a')
store.append(key='foo',value=df)#, format='t', data_columns=True)
store.append(key='foo',value=df2)#, format='t', data_columns=True, append=True)
#version 2
df.to_hdf(path_or_buf='test.h5',key='foo',mode='w',format='t')
df2.to_hdf(path_or_buf='test.h5',key='foo',mode='a',append=True,format='t',data_columns=True)
#version 3
df.to_hdf(path_or_buf='test.h5',key='foo',mode='w',format='f')
df2.to_hdf(path_or_buf='test.h5',key='foo',mode='a',append=True,format='f',data_columns=True)
df3 = pd.read_hdf('test.h5',key='foo',mode='r')
print(df3)
версия 1: ошибка типа: объект типа 'int' не имеет len ()
версия 2: ошибка типа : объект типа 'int' не имеет len ()
версия 3: ValueError: может добавляться только в таблицы
Этот вопрос был задан аналогично здесь , но довольно долго go. Я пытался сделать это с более старой pandas версией, но это вызывает еще больше проблем.
РЕДАКТИРОВАТЬ:
Кажется, что проблема заключается в массивах как содержание. Если я использую только B и C, вот так, это работает:
data = [['B0','C0'],['B1','C1'],['B2','C2']]
df = pd.DataFrame(data,columns=['B','C'])
data2 = [['B3','C3'],['B4','C4'],['B5','C5']]
df2 = pd.DataFrame(data2,columns=['B','C'])
Кто-нибудь знает возможность, как я могу заставить его работать, несмотря на использование массивов в качестве контента?