我有这个数据框:
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
最佳答案
您可以使用函数 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
关于python - Pandas 每天新专栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58796921/