python - Mapping methods across multiple columns in a Pandas DataFrame -
i have pandas dataframe values lists:
import pandas pd df = pd.dataframe({'x':[[1, 5], [1, 2]], 'y':[[1, 2, 5], [1, 3, 5]]}) df x y 0 [1, 5] [1, 2, 5] 1 [1, 2] [1, 3, 5] i want check if lists in x subsets of lists in y. individual lists, can using set(x).issubset(set(y)). how across pandas data columns?
so far, thing i've come use individual lists workaround, convert result pandas. seems bit complicated task:
foo = [set(df['x'][i]).issubset(set(df['y'][i])) in range(len(df['x']))] foo = pd.dataframe(foo) foo.columns = ['x_sub_y'] pd.merge(df, foo, how = 'inner', left_index = true, right_index = true) x y x_sub_y 0 [1, 5] [1, 2, 5] true 1 [1, 2] [1, 3, 5] false is there easier way achieve this? possibly using .map or .apply?
use set , issubset:
df.assign(x_sub_y = df.apply(lambda x: set(x.x).issubset(set(x.y)), axis=1)) output:
x y x_sub_y 0 [1, 5] [1, 2, 5] true 1 [1, 2] [1, 3, 5] false
Comments
Post a Comment