首页 > 解决方案 > 熊猫每天新专栏

问题描述

我有这个数据框:

user     day
A        1
A        4
B        2
B        4

我想将数据框更改为:

user   day_1   day_2   day_3   day_4
A      1       0       0       1
B      0       1       0       1

所以即使day_3没有用户,它也会自动生成day_3

我已尝试使用此代码,但它不起作用

for index, row in grouped_user.iterrows():
    grouped_user["day_" + str(int(row.active_period))] = 1

标签: pythonpandas

解决方案


您可以使用以下功能pivot_table()

df.assign(vals=1).\
pivot_table(index='user', columns='day', values='vals', fill_value=0).\
reindex(range(df['day'].min(), df['day'].max()+1), fill_value=0, axis=1).\
add_prefix('day_')

结果:

day   day_1  day_2  day_3  day_4
user                            
A         1      0      0      1
B         0      1      0      1

推荐阅读