san*_*ndy 2 python numpy rows count pandas
我有一个像这样的熊猫数据框:
X a b c
1 1 0 2
5 4 7 3
6 7 8 9
Run Code Online (Sandbox Code Playgroud)
我想打印一个名为 'count' 的列,它输出的值数大于第一列中的值(在我的情况下为 'x')。输出应如下所示:
X a b c Count
1 1 0 2 2
5 4 7 3 1
6 7 8 9 3
Run Code Online (Sandbox Code Playgroud)
我想避免使用 ' lambda 函数' 或 ' for ' 循环或任何类型的循环技术,因为我的数据帧有大量行。我试过这样的事情,但我无法得到我想要的。
df['count']=df [ df.iloc [:,1:] > df.iloc [:,0] ].count(axis=1)
Run Code Online (Sandbox Code Playgroud)
我也试过
numpy.where()
Run Code Online (Sandbox Code Playgroud)
也没有运气。所以任何帮助将不胜感激。我也有 nan 作为我的数据框的一部分。所以当我计算值时,我想忽略它。
提前感谢您的帮助!
您可以将ge(>=) 与sum
df.iloc[:,1:].ge(df.iloc[:,0],axis = 0).sum(axis = 1)
Out[784]:
0 2
1 1
2 3
dtype: int64
Run Code Online (Sandbox Code Playgroud)
分配回来后
df['Count']=df.iloc[:,1:].ge(df.iloc [:,0],axis=0).sum(axis=1)
df
Out[786]:
X a b c Count
0 1 1 0 2 2
1 5 4 7 3 1
2 6 7 8 9 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3229 次 |
| 最近记录: |