python - 尝试根据列是否包含特定字符串对其进行重新编码

标签 python string python-3.x pandas dataframe

我正在尝试对组进行概括,并且我在数据框中有一列字符串标题。我想根据它们是否包含字符串来拆分它们。有很多组,但它们都包含字符串 "Alpha" "Beta""Gamma"。我想用这些标题重新编码一个新专栏。下面的函数似乎没有按我预期的方式工作,我不确定是正则表达式还是 np.where 方法会更好。非常感谢任何帮助。

def recode_func(n):
    for i in n:
        if "Alpha" in i:
            i == "Alpha"
        elif "Beta" in i:
            i== "Beta"
        elif "Gamma" in i:
            i == "Gamma"
        else:
            continue

最佳答案

一种方法是迭代列表并使用 pd.Series.str.contains :

for item in ['Alpha', 'Beta', 'Gamma']:
    df.loc[df['col'].str.contains(item, regex=False), 'col'] = item

如上所述,regex=False 应该可以提高性能。

这比逐行迭代数据框更有效。

关于python - 尝试根据列是否包含特定字符串对其进行重新编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50179310/

相关文章:

c# - 如何删除所有出现的字符/子字符串?

python - Django 第一次迁移有一个匿名用户

python - 如何将数组复制到特定长度的数组

python - 基于公共(public)索引合并两个 DataFrame

python - 无法在输入框中捕获并输入一些动态生成的数字来填充一些结果

python - 迭代 Azure ItemPaged 对象

python - 对列进行排名并选择列名称

regex - 在 BASH 中的字符串末尾前插入一个字符 4 个字符

javascript - 用于规范字符串中的重音元音(和其他符号)的函数或表

python - 获得最小移动以避免方形重叠的算法