如何基于1和许多列的组合在DataFrame中创建新列

2024-04-27 00:18:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据集如下所示:

   Cond  Column_A  Column_B  Column_C  Cumulative_Count
0     1     -0.60     -0.12     -0.17                 1
1     0      0.30      0.70      0.98                 0
2     1     -0.45     -0.71     -0.99                 2
3     1      0.60      0.12      0.17                 1
4     0      0.20      0.80      0.60                 0
5     1      0.70      0.14      0.20                 1

我想创建一个列累计\u计数,它根据多种条件统计事件的发生,例如:

1)如果Cond=1和(列A<;0.5或列B>;0.5)则累计计数=累计计数+1

2)如果Cond=1和(列\u B<;0.5或列B>;0.5)则累计计数=累计计数+1

3)如果Cond=1和(列C<;0.5或C列>;0.5)则累计计数=累计计数+1

我想使用NumPy数组来执行它,因为我的数据集非常大。我试着用下面的代码,它不是抛出错误,但结果是不正确的。如果可能的话,我需要对所有列使用它,因为我有50+个列

df['Cum_Count']=0
df['Cum_Count']=np.where((df['Cond']>0 & ((df['Column_A']<-0.5) | (df['Column_A']>0.5))), df['Cum_Count']+1, df['Cum_Count'])

Tags: 数据代码ltgtnumpydfcount事件