所以我有一个包含两列的数据框;变量名称和该变量出现的时间实例如下:
Variable Time
v1 t1
v2 t2
v3 t3
我想添加另一个带有值的列,该列将有一个 bool 值(1或0),1表示该值已出现(该时间实例),在该时间实例之外为零,(t + 1 )。像这样的事情:
Variable Time Value
v1 t1 1
v1 t1+1 0
v2 t2 1
v2 t2+1 0
v3 t3 1
v3 t3+1 0
关于如何在 python 数据框中实现这一点有什么想法吗?
干杯。
最佳答案
如果变量列已排序,请使用 duplicated
对于掩码,通过 ~
反转并转换为 int
- True
为 1
和 False
是0
:
print (df)
Variable Time
0 v1 3
1 v1 4
2 v2 7
3 v2 8
4 v3 3
5 v3 4
6 v3 5
df['Value'] = (~df['Variable'].duplicated()).astype(int)
print (df)
Variable Time Value
0 v1 3 1
1 v1 4 0
2 v2 7 1
3 v2 8 0
4 v3 3 1
5 v3 4 0
6 v3 5 0
关于python - 将 bool 值列添加到包含变量和时间列的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44881065/