我有一个生物样本列表,可以显示第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())