我当前拥有一个DataFrame(df1),并且当前尝试将df1拆分为3个小DataFrame,并以原始df1列的名称(col_1df,col_2df,col_3df)命名,并且df1中的第一列应成为new的列名dfs如下所示
答案 0 :(得分:0)
尝试如下使用Pivot Table:
样本数据(CSV)
a,date,v1,v2
a1,2019-01-01,1,2
a1,2019-01-02,1,3
a2,2019-01-01,2,3
a3,2019-01-01,1,3
使用pandas.read_csv()
函数将此CSV加载到熊猫数据框中。
然后只需按以下所示应用pivot_table:
df.pivot_table(index='date', columns='a', values='v1')
a a1 a2 a3
date
2019-01-01 1.0 2.0 1.0
2019-01-02 1.0 NaN NaN
因此,您可以为其他列做
。注意:始终以易于访问的方式发布样本数据,图像不是最佳实践。
编辑:
如果您想要对所有目标列执行自动操作的方式,那么最好的考虑就是创建字典,其中键是您的数据框名称,值是相应的数据框本身。
这里是:
d=dict()
target_cols=list(set(df.columns)-{'date','a'})
for col in target_cols:
d[col+"_df"]=df.pivot_table(index='date', columns='a', values=col)
访问键之一:
print(d['v1_df'])
a a1 a2 a3
date
2019-01-01 1.0 2.0 1.0
2019-01-02 1.0 NaN NaN