如何用布尔值重塑pandas数据框



我有一个生物样本列表,可以显示第1天,第2天或第3天的事件。我的数据框看起来像这样:

Cell#   Event
0   0   Day 3
1   1   Day 2
2   2   Day 2
3   3   Day 1
4   4   Day 3
5   5   Day 3
6   6   Day 2
7   7   0
8   8   Day 1
9   9   Day 2

表示Cell#0在第3天显示事件,Cell#7没有显示事件。

我想重塑它,以便有这样的数据框架:

Cell#   Day 1   Day 2   Day 3
0   0   0   0   1
1   1   0   1   1
2   2   0   1   1
3   3   1   1   1
4   4   0   0   1
5   5   0   0   1
6   6   0   1   1
7   7   0   0   0
8   8   1   1   1
9   9   0   1   1

表示当事件未发生时,value为0,但当事件发生时,value变为1,直到结束。

我一直在努力解栈(如何解栈(或枢轴?)在熊猫)和枢轴,但我找不到解决方案…

请你告诉我你有什么线索可以解决这个问题吗?

请!

try:

pd.concat([df.drop(['Event'], axis=1),pd.get_dummies(df['Event'])], axis=1).drop('0',axis=1)

df.assign(**pd.get_dummies(df['Event'])).drop(['Event', '0'],axis=1)

使用unstack:

df.assign(k=1).set_index(['Cell#','Event'])['k'].unstack().reset_index(drop=True).drop('0',axis=1).fillna(0)

Try withget_dummies

out = df.join(df.pop('Event').replace('0',np.nan).str.get_dummies())

最新更新