如何在python中查找数据集的两个不同列中相同值的匹配
我有一个.txt文件格式的数据集,如下所示:如何在python中查找数据集的两个不同列中相同值的匹配,python,sorting,numpy,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 [0, 3] [1, 2, 5] 我想打印在x和y列中具有相同值的行的ID 我写了一篇没有达到我想要的效果的文章: import numpy as np halo = 'test.txt' ID, m,r,x,y,z= np
# 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
[0, 3]
[1, 2, 5]
我想打印在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
基本上,我需要如下输出:
# 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
[0, 3]
[1, 2, 5]
它包含在x和y中具有相同值的ID列值。非常感谢您的帮助。这可以通过熊猫来完成
import pandas as pd
df = pd.read_csv('path_to_your_txt_file')
rows = df[df['x'] == df['y']]
其中rows.index=[0,3]您好,这对我来说还不太管用,我是否需要使用“print rows.index”来打印[0,3]?是的,rows是一个数据帧,它的索引是您想要的输出。所以打印(rows.index)