Pandas 比较数据框和系列的最有效方法

标签 pandas compare series

我有一个形状为 (n, p) 的数据框和一系列长度n
我可以将它们与:
for i in df.keys(): df[i] > ts
有没有办法在一行中做到这一点?类似 df > ts .
如果是,它是否更有效率?

最佳答案

我想你需要 DataFrame.gt :

print (df.gt(s, axis=0))

样本:
df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B  C  D  E  F
0  1  4  7  1  5  7
1  2  5  8  3  3  4
2  3  6  9  5  6  3

s = pd.Series([1,2,3])
print (s)
0    1
1    2
2    3
dtype: int64

print (df.gt(s, axis=0))
       A     B     C      D     E      F
0  False  True  True  False  True   True
1  False  True  True   True  True   True
2  False  True  True   True  True  False

如果需要其他功能进行比较:
  • lt
  • gt
  • le
  • ge
  • ne
  • eq
  • 关于 Pandas 比较数据框和系列的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40889072/

    相关文章:

    java - 何时使用 extends 或 Implements Comparable (Java) ? + 为什么我无法创建对象

    c - 字符串比较有问题吗? C

    python - 计算应添加的项数以获得所需的系列总和

    python - 在 for 循环中定义可变的列数

    python - 解析 Pandas 中的大字符串值

    C++ 将 char 与字符串文字进行比较

    python - Pandas 多列中最常见的值

    python - 将字典映射标签分配给 pandas 中列的索引值

    python - 多列上的 Pandas merge_asof

    python - 给定边缘拆分 DataFrame 的最佳方法