我正在创建一个包含两列的data_frame,然后将索引设置为这两列。因此它为空,但具有索引。然后,我将其与另一个具有相同索引的data_frame一起加入。它可以工作,但出现以下警告:
UserWarning:在不同级别之间合并会产生意想不到的结果(左侧2个级别,右侧1个级别) warnings.warn(msg,UserWarning)
我想念什么吗?是否有意外行为?我想摆脱警告。代码如下。我正在用代码创建一个数据帧,另一个从文件加载。
def forward_fill_dates(self, start_date, end_date):
dates = []
current_date = start_date
while current_date <= end_date:
dates.append({'Date': int(f'{current_date:%Y%m%d}'), 'Bin': 0})
current_date = bd.shift_day(current_date, 1)
date_df = pandas.DataFrame(dates).set_index(['Date', 'Bin'])
unstacked_df = self.other_data.unstack()
joined_df = pandas.merge(unstacked_df, date_df, how='outer', left_index=True, right_index=True)
self.other_df = joined_df.fillna(method='ffill').stack()
答案 0 :(得分:0)
好,知道了。不是索引具有不同级别的数据。 设置索引后,我添加了以下行:
date_df.columns = pandas.MultiIndex.from_product([date_df.columns, ['']])
我从这篇文章中得到了答案: How to keep column MultiIndex values when merging pandas DataFrames