Skip to main content
 首页 » 编程设计

python之Pandas 每天新专栏

2025年05月04日18luoye11

我有这个数据框:

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