Python 3.x 如何有效地从中分解数据?

Python 3.x 如何有效地从中分解数据?,python-3.x,pandas,Python 3.x,Pandas,我有谷歌分析数据,我正试图分解 下面是我正在处理的数据帧的简化版本: date | users | goal_completions 20150101| 2 | 1 20150102| 3 | 2 我想对数据进行分解,这样每个“用户”都有自己的行。此外,第三列“目标完成情况”也将进行分类,假设每个用户只能有1个“目标完成情况” 我正在寻找的输出如下: date | users | goal_completions 20150101| 1 | 1 201501

我有谷歌分析数据,我正试图分解

下面是我正在处理的数据帧的简化版本:

date    | users | goal_completions
20150101|  2    | 1
20150102|  3    | 2
我想对数据进行分解,这样每个“用户”都有自己的行。此外,第三列“目标完成情况”也将进行分类,假设每个用户只能有1个“目标完成情况”

我正在寻找的输出如下:

date    | users | goal_completions
20150101|  1    | 1
20150101|  1    | 0
20150102|  1    | 1
20150102|  1    | 1
20150102|  1    | 0
我能够根据给定日期的用户数量复制每一行,但是我似乎找不到一种方法来分解“目标完成”列。以下是我在复制“用户”栏后当前拥有的内容:


任何帮助都将不胜感激-谢谢

IIUC使用
repeat
创建您的dfs,然后我们通过
cumcount
使用
np调整两列。其中

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
df=df.reindex(df.index.repeat(df.users))
df=df.assign(用户=1)

df.goal_completions=np.where(df.groupby(level=0).cumcount()非常酷地使用了
cumcount
groupby
你能解释一下
level=0
是如何工作的吗?我必须承认这对我来说是一个新的。@datanoveler,这是Goruby index:-)
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