我正在创建一个python脚本,该脚本检查CSV文件的列中是否存在值,而另一个文件中则不存在。目前,我已按预期运行此功能,并且脚本从CSV文件的列中返回唯一值。下一步是让脚本返回该唯一值的整行。因此,例如,如果ID为'A53456'的用户存在于CSV文件的第15行中,我希望该脚本出现并打印出整个行号15。任何想法如何实现?谢谢。
code 1 in /private/var/folders/tt/qgg159gx5g9_rqh58q0ctdxr0000gn/T/pip-install-kuVn0W/mysqlclient/
答案 0 :(得分:1)
这是一个不使用循环的示例,仅使用pandas
和numpy
(比循环要快得多)
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