我正在尝试推广群组,我在数据框中有一列字符串标题。我想根据它们是否包含字符串来拆分它们。有许多组,但它们都包含字符串"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
答案 0 :(得分:1)
一种方法是迭代列表并使用pd.Series.str.contains
:
for item in ['Alpha', 'Beta', 'Gamma']:
df.loc[df['col'].str.contains(item, regex=False), 'col'] = item
如上所述,regex=False
应该可以提高效果。
这比按行迭代数据帧更有效。