熊猫数据框元素与值列表的比较

格达斯萨皮斯

我有一个包含 15000 个值的列的 pd 数据框。我有另一个包含 400 个值的文本文件(数组或数据框)。我的任务是检查这 400 个值中有多少比我的数据框中列的元素大。

即我需要一个列 len=15000 作为输出,其值为 0-400。

有什么好的方法可以做到这一点?For 循环违背了使用数据帧的目的;/

谢谢

迪瓦卡尔

'col'作为列标题和arr400作为阵列400元件,一种方法将是使用NumPy broadcasting-

(df.col.values[:,None] < arr400).sum(axis=1)

可能会使用更快np.count_nonzero-

np.count_nonzero(df.col.values[:,None] < arr400, axis=1)

样品运行 -

In [246]: df
Out[246]: 
   col
0    7
1    2
2    6
3    0
4    8
5    1
6    6
7    3
8    1
9    1

In [247]: arr400
Out[247]: array([2, 2, 8, 7])

In [248]: (df.col.values[:,None] < arr400).sum(axis=1)
Out[248]: array([1, 2, 2, 4, 0, 4, 2, 2, 4, 4])

In [249]: np.count_nonzero(df.col.values[:,None] < arr400, axis=1)
Out[249]: array([1, 2, 2, 4, 0, 4, 2, 2, 4, 4])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章