熊猫返回其子字符串在另一列中找到的行的列表

时间:2019-12-04 11:45:40

标签: python string pandas

我有以下数据集;

enter image description here

我想结束像这样的一列;

enter image description here

理想情况下,我想将各列转换为相同的大小写,并用空格分割字符串,然后返回包含在另一列上找到的子字符串的行。

1 个答案:

答案 0 :(得分:1)

Series.str.split检查DataFrame.isin的第一列的值,将第二列的值平分,并用DataFrame.any每行至少获得一个True值,传递给{ {3}}(带有过滤器第一列),并在必要时通过boolean indexing创建一个列Dataframe

df = pd.DataFrame({'column_a':['ga lt','ka','ku','na ma',np.nan, np.nan],
                   'column_b':['se','ga','ma po','na','ka ch', 'wa wo']})


vals = [y for x in df['column_b'] for y in x.split()]
mask = df['column_a'].str.split(expand=True).isin(vals).any(axis=1)

df = df.loc[mask, 'column_a'].to_frame('column_a_in_column_b')
print (df)
  column_a_in_column_b
0                ga lt
1                   ka
3                na ma