python - Pandas 每天新专栏

标签 python pandas

我有这个数据框:

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/

相关文章:

python - Pandas 数据框 CSV 减少磁盘大小

python - 记录更改列表中的 Django-admin : How to display link to object info page instead of edit form ,?

Python:审查文本中的一个词但最后一个词不审查

pandas - 如何从一列数据帧中计算 tfidf 分数并提取具有最小分数阈值的单词

Python - 比较运算符超过 2 个条件

python - 遍历 jinja2 中的 pandas 数据框

python - 如何将 python 字典转换为具有故意重复值的列表

python - 无换行 python

python - 获取另一列中每个唯一值的前 2 个值

python - 如何在不使用列名的情况下将列表 append 到数据框?