我有要分解的Google Analytics(分析)数据。
以下是我正在处理的数据框的简化版本:
date | users | goal_completions
20150101| 2 | 1
20150102| 3 | 2
我想分解数据,以便每个“用户”都有自己的行。此外,假设每个用户只能有1个“ goal_completion”,那么第三列“ goal_completions”也将被分解。
我正在寻找的输出将是这样的:
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
任何帮助将不胜感激-谢谢!
答案 0 :(得分:1)
IIUC使用repeat
创建dfs,然后我们用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