python - Pandas:查看项目是否在数据框中的 Series.series 列表中

标签 python pandas dataframe series

我有一个看起来像这样的数据框(小版本):

    A   B   C
0   125 ADB [AF:12]
1   189 ACB [AF:78, AF:85, AF:98]
2   148 ADB []
3   789 ARF [AF:89, AF:85, AF:12]
4   789 BCD [AF:76, AF:25]

如何查看“C”列中的某些项目是否在列表中? 知道当我执行 type(df.C) 时,我得到 class 'pandas.core.series.Series'

例如,如果列表是:

['AF:12', 'AF25']

预期的输出是:

    A   B   C                        D
0   125 ADB [AF:12]                  True
1   189 ACB [AF:78, AF:85, AF:98]    False
2   148 ADB []                       False
3   789 ARF [AF:89, AF:85, AF:12]    True
4   789 BCD [AF:76, AF:25]           True

我试过df['D'] = df['C'].isin(list) 但可能到处都是假的,因为“C”是列表的列表。

有办法解决这个问题吗?

任何帮助将不胜感激

最佳答案

如果 C 列的元素类型是 list ,那么我相信一种方法是使用 set 交集您的列表和 C 列的元素使用 Series.apply方法 。示例 -

setlst = set(yourlist)
df['D'] = df['C'].apply(lambda x: bool(setlst.intersection(x)))

如果 type(df['C'][0])list ,您可以确认 C 是列表类型。

另请注意,不推荐使用 list 作为变量名,因为它会影响内置类型 list

关于python - Pandas:查看项目是否在数据框中的 Series.series 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32983972/

相关文章:

python - Dask dataframe 基于列或函数分割分区

python - 使用 Python/Pandas 索引日期作为假期列表中的条件

python - 不知道如何根据条件合并数据

从 CSV 读取某些列时,Python Folium map 不显示?

python - PySpark 在每个 DataFrame 行上执行普通 Python 函数

r - 获取每组中的最后 2 行

python - 导入 __future__ 除法仅在未从另一个文件导入时才起作用

Python:如何在不单独打印每条消息的情况下向列表中的项目写入消息?

python - 如何在 Python 中创建 DOT 文件?

python - Pandas 替换值