gpt4 book ai didi

python - Pandas 字符串按可变长度位置过滤

转载 作者:行者123 更新时间:2023-12-01 02:00:37 25 4
gpt4 key购买 nike

我有一个带有字符串列的 pandas 数据框。字符串的长度为 2 或 3 个字符,我必须过滤掉第三个字符为“W”的字符串。到目前为止我已经

df[df.col_name.str[2] == 'W']

只要 df.col_name 包含包含 2 个和 3 个字符的字符串,此方法就有效。但是,当 df.col_name 仅包含 2 个字符的字符串时,代码会崩溃并显示错误:

TypeError: invalid type comparison

有什么办法可以让这两种情况都适用吗?

最佳答案

您可以使用apply函数,它将自定义函数作为参数。自定义函数可以包含任何任意逻辑,在您的情况下,它会检查第三个字符是否是“W”。

这应该可以完成工作:

import pandas as pd

df = pd.DataFrame({'A':['a','ab','abW']})

def custom_filter(str):
if len(str) >= 3 and str[2] == 'W':
return str[2]
else:
return ""


df['new'] = df['A'].apply(custom_filter)

print(df['new'])

不使用 custom_filter 函数的较短方法是:

df[df['A'].apply(lambda x: len(x)>=3 and x[2]=='W')]

关于python - Pandas 字符串按可变长度位置过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49691923/

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