如何在python中的数据集的两个不同列中找到相同值的匹配

时间:2018-07-30 18:52:12

标签: python sorting numpy

我有一个.txt文件格式的数据集,如下所示:

# ID M R x y z
  0 1 200 2 2 2 
  1 5 300 2 4 6 
  2 5 600 2 4 2
  3 4 500 2 2 5
  4 4 500 3 2 1
  5 7 300 2 4 1

我想打印在x和y列中具有相同值的行的ID

我写了一篇与我想要的东西无二的书

import numpy as np
halo = 'test.txt'
ID, m,r,x,y,z= np.loadtxt(halo)


for yv in np.unique(halo[3] and halo[4]):
    if yv != np.nan:
        idx = x == yv

print idx

基本上,我想要类似以下的输出:

[0, 3]
[1, 2, 5]

包含x和y中具有相同值的ID列值。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这可以用熊猫来完成,

import pandas as pd
df = pd.read_csv('path_to_your_txt_file')
rows = df[df['x'] == df['y']]

其中rows.index = [0,3]