Ashvani Jaiswal
Ashvani Jaiswal

Reputation: 110

Pandas DataFrame producing unexpected result with list comprehension

When I am using list comprehension on dataframe to find common elements in each columns.

   df
    A   B   C
0   1   2   0
1   3   4   6
2   5   6   7
3   7   3   3
4   9   1   9

    l=[i for i in df.A if i in df.B ]
    l
    [1, 3]
    list2=[i for i in l if i in df.C]
    list2
    [1, 3]

first list comprehension produces the result as expected i.e common element in A and B are [1,3]. But [i for i in l if i in df.C] this line produces unexpected result.

Upvotes: 1

Views: 88

Answers (1)

mbcalli
mbcalli

Reputation: 51

Convert the DataFrame column to a list.

list2 = [i for i in l if i in list(df.C)]

OR

list2=[i for i in l if i in df.C.tolist()]

output of list2:

>>>print(list2)
[3]

This is because df.C returns a Series with index '1' included.

You can also use df.C.values instead.

Upvotes: 2

Related Questions