gpt4 book ai didi

python - Panda 数据框元素与值列表的比较

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:23 25 4
gpt4 key购买 nike

我有一个 pd 数据框,其中有一列 15000 个值。我有另一个包含 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])

关于python - Panda 数据框元素与值列表的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44440346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com