python - 从字符串列表中删除某些字符串作为 pandas.DataFrame 中的列

标签 python pandas dataframe

我有一个pandas.DataFrame:

    index    question_id    tag
    0        1858           [pset3, game-of-fifteen]
    1        2409           [pset4]
    2        4346           [pset6, cs50submit]
    3        9139           [pset8, pset5, gradebook]
    4        9631           [pset4, recover]

我需要从 tag 列中的字符串列表中删除除 pset* 字符串之外的所有字符串。

所以我需要这样结束:

    index    question_id    tag
    0        1858           [pset3]
    1        2409           [pset4]
    2        4346           [pset6]
    3        9139           [pset8, pset5]
    4        9631           [pset4]

请问我该怎么做?

最佳答案

一种选择:使用apply方法循环遍历tag列中的项目;对于每个项目,使用列表理解来使用 startswith 方法根据前缀过滤字符串:

df['tag'] = df.tag.apply(lambda lst: [x for x in lst if x.startswith("pset")])
df

enter image description here

关于python - 从字符串列表中删除某些字符串作为 pandas.DataFrame 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43379418/

相关文章:

python 没有使用最新的 numpy 版本

python - 如何用python解码colnames pandas dataframe?

r - 在 R 中每小时对数据框进行分组

python - 如何根据另一个数据框中的变量从数据框中选择列

python - (Python/Pandas) 对值进行排序时的数据透视表

python - 如何设置 celery 链中第一个任务的任务 ID?

python - 如何从 DataProcPySparkOperator 发出 Airflow 日志

python - 如何在groupby之后创建变量

Python - 对目录中的文件进行排序并在代码中使用最新文件

python - 如何使用 pandas 将 API 中的数据拆分为行和列?