Я на самом деле решить эту проблему путем копирования ма dataframe на новую строку файла построчно и используя в то же время мой фильтр. Кажется, нужно работать, даже если требуется некоторое время. Thanks
Еще раз спасибо Фил, вот код, который я использую для написания файла H5. На самом деле для фильтрации и записи нового файла требуется около 2 минут. Файл .CSV - это список дат, которые я хочу сохранить (и, следовательно, удалять строки, относящиеся к другим датам).
_hdf_store_path = config.get_hdf_store_path()
store = pd.HDFStore(os.path.join(_hdf_store_path, "household_{}_good.h5".format(household_id)), mode='w')
data_file = os.path.join(_hdf_store_path, "household_{}.h5".format(household_id))
data_store = pd.HDFStore(data_file)
df_1 = pd.concat([data_store[key] for key in data_store.keys()])
df_1_bis = df_1[df_1.date >= "2012-09-01"].sort("date")
dates = []
with open('Good_dates_{}_80pc.csv'.format(household_id), 'rb') as fp:
for line in fp:
str_line = line.decode("utf-8")
dates.append(datetime.datetime.strptime(str_line.split()[0], "%Y-%m-%d"))
for day in dates:
print("day =", day)
day_after = day + datetime.timedelta(1)
df_bis = df_1_bis[df_1_bis.date >= day]
df = df_bis[df_bis.date <= day_after]
store.append("day", df, min_itemsize={'ID': 15, 'sensor_id': 15, 'type': 15, 'date': 15, 'room': 15,
'place': 15, 'value': 15})
store.close()
Вы действительно хотите добавить колонку? Он избыточен и будет иметь меньше информации, чем исходный столбец. Что касается того, как добавить столбец в набор данных hdf5, как я понимаю, это не тривиальная операция, поэтому я спрашиваю, действительно ли вы хотите добавить столбец. Если вы действительно хотите добавить столбец в существующий набор данных, тогда было бы намного легче ответить на ваш вопрос, если бы вы предоставили образцы данных и пример кода. – Phil
Спасибо за ваш ответ Фил! Я думал, что это было проще и простой операции, но, видимо, нет. На самом деле у меня есть два файла. Сначала у меня есть «контейнер», он содержит этот набор данных HDF5 с 7 столбцами, в том числе с датами. Мой другой файл - это. CSV-файл со списком дат, которые мне нужны. Мне нужно создать новый набор данных HDF5, содержащий только данные о датах, приведенных в файле csv. (это в основном фильтр) Я спокойно в этом поле, и поэтому я немного потерян. Если у вас есть идея или ссылка, чтобы помочь мне, было бы здорово. Спасибо –