Общие элементы в столбце данных - PullRequest
0 голосов
/ 11 июня 2018

У меня есть список CSV, который я сейчас читаю в кадре данных в Pandas.Мне нужно найти общие элементы в одном из столбцов кадра данных.

 df1 = pd.read_csv("example.csv")
 df2 = pd.read_csv("example1.csv")
 val = np.intersect1d(example[' column'], example1[' column'])

Как это сделать для нескольких файлов.

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Вы можете использовать set.intersection для нескольких наборов, распаковывая итерацию.Данные из @ raulferreira.

res = set.intersection(*(set(df['val']) for df in [df1, df2, df3]))

print(res)
# {'A'}
0 голосов
/ 11 июня 2018

Вы можете сделать что-то вроде:

df1 = pd.DataFrame([
    (0, "A"),
    (1, "B"),
    (2, "C"),
    (3, "D")
], columns=["id", "val"])

df2 = pd.DataFrame([
    (0, "A"),
    (1, "A"),
    (2, "A"),
    (3, "D")
], columns=["id", "val"])

df3 = pd.DataFrame([
    (0, "A"),
    (1, "A"),
    (2, "A"),
    (3, "A")
], columns=["id", "val"])

from functools import reduce

dfs = [df1, df2, df3]

val = reduce(
    lambda acc, x: np.intersect1d(acc, x['val']),
    dfs,
    dfs[0]['val']
)

val

#  array(['A'], dtype=object)
...