【问题标题】:Select rows from dataframe where column values are lists of strings从数据框中选择行,其中列值是字符串列表
【发布时间】:2021-04-27 15:58:06
【问题描述】:

我有一个数据框,我想根据包含字符串列表的列进行过滤。

示例:

df["artists"].head()

0    ['Sergei Rachmaninoff', 'James Levine', 'Berli...
1                                       ['Dennis Day']
2    ['KHP Kridhamardawa Karaton Ngayogyakarta Hadi...
3                                     ['Frank Parker']
4                                       ['Phil Regan']
Name: artists, dtype: object

                 

我想做一些类似的事情

df[df['artists'] == 'Dennis Day']

但是这会返回一个空的数据框。

我已经进行了几次其他尝试,但似乎无法弄清楚如何按列表进行过滤,而且我的搜索结果倾向于提供将列表传递给过滤器的方法。

我确信它非常明显,但我们将不胜感激。

谢谢

【问题讨论】:

    标签: python python-3.x pandas list nested-lists


    【解决方案1】:

    使用应用和遮罩

    import pandas as pd
    df= pd.DataFrame(columns=["artists"])
    df.loc[0,"artists"] =   ['Frank Parker','Dennis Day']
    df.loc[1,"artists"] =  ['Sergei Rachmaninoff', 'James Levine']
    
    mask = df.artists.apply(lambda row:'Dennis Day' in row)
    df = df[mask]
    df
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-25
      • 2022-12-14
      • 2023-01-03
      • 1970-01-01
      • 2020-07-04
      • 2017-06-03
      • 2020-06-09
      相关资源
      最近更新 更多