【问题标题】:pandas most efficient way to compare dataframe and series熊猫比较数据框和系列的最有效方法
【发布时间】:2016-11-30 13:01:31
【问题描述】:

我有一个形状为 (n, p) 的数据框和一系列长度为 n 的数据框

我可以将它们与:

for i in df.keys(): df[i] > ts

有没有办法在一行中做到这一点?类似df > ts。 如果是,效率更高吗?

【问题讨论】:

    标签: pandas compare series


    【解决方案1】:

    我觉得你需要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
    

    如果需要其他函数进行比较:

    【讨论】:

    • 这看起来不错。可以进行双重比较吗?类似s<df<S?
    • 嗯,它更复杂,但认为这可以工作print ((df.gt(s, axis=0)) | (df.lt(s1, axis=0)))
    猜你喜欢
    • 1970-01-01
    • 2017-03-28
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2016-05-04
    相关资源
    最近更新 更多