gpt4 book ai didi

python - 如何在已通过正则表达式过滤的 pandas DataFrame 上使用 .apply 函数?

转载 作者:行者123 更新时间:2023-11-30 22:39:46 25 4
gpt4 key购买 nike

我有一个 pandas DataFrame,其中包含从几个 Wiki 表中抓取的数据。 DataFrame 有一个名称列,其中一些名称后面带有“\r\n(主教练)”。我想删除它,所以我尝试了这个:

df['name'][df.name.str.contains(r'coach')] =\
df['name'][df.name.str.contains(r'coach')].apply(lambda x: x[0:-14])

当它运行时,我收到一个SettingWithCopyWarning。我尝试按照此 SO Q&A 中的建议使用 .loc :

 mask = df.loc[:,'name'] == df['name'].str.contains(r'coach')

但是每个值都返回 False,因此当我将其与 DataFrame 一起使用时,我会得到一个空 Series。

我不知道我哪里出了问题。有什么指点吗?

最佳答案

你可以试试这个:

mask = df.name.str.contains(r'coach')]
df.loc[mask, 'name'] = df.loc[mask, 'name'].str[:-14]

或者正如 @piRSquared 评论的那样,这个简单的行也应该有效:

df.loc[mask, 'name'] = df.name.str[:-14]

关于python - 如何在已通过正则表达式过滤的 pandas DataFrame 上使用 .apply 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43050898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com