找到唯一值的行ID,然后打印整行(Python / Pandas)

时间:2018-12-06 10:00:11

标签: python pandas

我正在创建一个python脚本,该脚本检查CSV文件的列中是否存在值,而另一个文件中则不存在。目前,我已按预期运行此功能,并且脚本从CSV文件的列中返回唯一值。下一步是让脚本返回该唯一值的整行。因此,例如,如果ID为'A53456'的用户存在于CSV文件的第15行中,我希望该脚本出现并打印出整个行号15。任何想法如何实现?谢谢。

code 1 in /private/var/folders/tt/qgg159gx5g9_rqh58q0ctdxr0000gn/T/pip-install-kuVn0W/mysqlclient/

1 个答案:

答案 0 :(得分:1)

这是一个不使用循环的示例,仅使用pandasnumpy(比循环要快得多)

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[1,2,3,1,22,3], 'B':[1,2,33,1,2,3]})

    A   B
0   1   1
1   2   2
2   3  33
3   1   1
4  22   2
5   3   3

# find the common values, so we can later exclude them 
# and get only unique values
common_values = np.intersect1d(df['A'].unique(), df['B'].unique())
print(common_values)
[1 2 3]

# '~' is a NOT operator
# unique values from column 'A':
df[~df['A'].isin(common_values)]

    A   B
4   22  2

# unique values from column 'B':
df[~df['B'].isin(common_values)]

    A   B
2   3   33