【问题标题】:Comparing Values of Two arrays in Python在 Python 中比较两个数组的值
【发布时间】:2017-11-01 23:06:08
【问题描述】:

我有一个大型数据集尝试使用 Pandas 进行读取。我试图将其中一列的值分成两部分,并检查这些集合之间是否存在任何重叠值。使用下面的代码,结果是数组“b”和数组“c”中有一些值重叠。我想具体获取这些值但不知道如何?谁能指出我正确的方向?

df = pd.read_csv('....csv')

df2 = df[df['Freq']>= 280]
a=df2['Ring'].values
b=df2['Ring'].drop_duplicates().values

df3 = df[df['Freq']<= 280]
df3['Ring'].values
c=df3['Ring'].drop_duplicates().values

if np.all(b) == np.all(c):
    print ("They are overlapping")
else:   
    print ("They are not overlapping")

【问题讨论】:

    标签: python list numpy indexing


    【解决方案1】:

    根据提供的示例,您可以执行以下操作:

    import numpy as np
    np.intersect1d(b, c)
    

    或者你也可以这样做:

    cond = df['Freq'] >= 280
    np.intersect1d(df[cond]['Ring'], df[~cond]['Ring'])
    

    【讨论】:

    • 使用您提到的脚本,结果是数组'c'和数组'b'中的值之间没有重叠,这是正确的,因为我手动检查并且没有重叠。但我的问题是我的代码的“if 条件”有什么问题?!因为它给了我“它们是重叠的”
    • np.all 测试数组中的所有元素是否为真。所以基本上在你的 if 语句中,你正在测试 bc 是否包含非零元素。
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2017-08-29
    相关资源
    最近更新 更多