这是我的代码。我写了一个自定义合并函数,而不是使用 pd.merge,它工作得更快。
def merge_cols(maindf,series,on,suffix):
extraColumns = sorted(list(set(series.columns.tolist())-set(on)))
series = pd.merge(maindf[on], series, how='left', on=on)
for extraColumn in extraColumns:
maindf[str(extraColumn)+suffix] = series[extraColumn].values
maindf.reset_index(drop=True,inplace=True)
return maindf
pivotdf = pd.pivot_table(df, values = ["val1",'val2'], index=['date'], columns = 'Sector').astype("float32")
df = merge_cols(df,pivotdf ,on=["date"],suffix="by_sector")
关于表的信息:
val1
和 val2
是 float32 列。
date
是 Int64 列
Sector
是分类的