python-3.x - 如何有效地分解数据?
问题描述
我有我正在尝试分解的 Google Analytics(分析)数据。
下面是我正在处理的数据框的简化版本:
date | users | goal_completions
20150101| 2 | 1
20150102| 3 | 2
我想分解数据,使每个“用户”都有自己的行。此外,第三列“goal_completions”也将被分解,假设每个用户只能有 1 个“goal_completion”。
我正在寻找的输出将是这样的:
date | users | goal_completions
20150101| 1 | 1
20150101| 1 | 0
20150102| 1 | 1
20150102| 1 | 1
20150102| 1 | 0
我能够根据给定日期的用户数量复制每一行,但是我似乎找不到分解“goal_completion”列的方法。这是复制“用户”列后我目前拥有的内容:
date | users | goal_completions
20150101| 1 | 1
20150101| 1 | 1
20150102| 1 | 2
20150102| 1 | 2
20150102| 1 | 2
任何帮助将不胜感激 - 谢谢!
解决方案
IIUC 使用create you dfs ,然后我们调整repeat
两列cumcount
np.where
df=df.reindex(df.index.repeat(df.users))
df=df.assign(users=1)
df.goal_completions=np.where(df.groupby(level=0).cumcount()<df.goal_completions,1,0)
df
Out[609]:
date users goal_completions
0 20150101 1 1
0 20150101 1 0
1 20150102 1 1
1 20150102 1 1
1 20150102 1 0
推荐阅读
- java - 如何修复无法在 JavaFX 中读取的文件
- javascript - 通过使用纯 Javascript 在单页应用程序上使用 Google 跟踪代码管理器
- reactjs - React - 有什么方法可以取消(或忽略)“OnChange”处理程序上的异步操作?
- sql - 如何在 SQL 中实现 MECE(互斥,集体穷举)?
- python - 如何直接从自己的云端硬盘将 .txt(或其他文件类型)导入 Google Colab 笔记本?
- highcharts - 带边距的嵌套圆环图
- c# - 我可以使用 C# 在我的主项目中使用可选包中的视图或视图模型吗?
- postgresql - 并发索引 Postgres 语句退出
- javascript - Jquery防止页面重新加载帖子
- html - iframe 直到悬停后才会加载