【发布时间】:2018-11-22 15:09:21
【问题描述】:
我编写了下面的代码,它接受字符串的 pandas 系列(数据框列)和要在字符串中替换的术语字典。
def phrase_replace(repl_dict, str_series):
for k,v in repl_dict.items():
str_series = str_series.str.replace(k,v)
return str_series
它工作正常,但似乎我应该能够使用某种列表理解而不是 for 循环。
我不想使用str_series = [] 或{},因为我不想返回一个列表或字典,而是一个pandas.core.series.Series
同样,如果我想在数据框中的每一列上使用该函数:
for column in df.columns:
df[column] = phrase_replace(repl_dict, df[column])
必须有一个列表理解方法才能做到这一点?
【问题讨论】:
-
@cosmic_inquiry 和 jezrael 都是正确的。我可以用 df.replace 替换我的函数,并使用 pd.concat() 应用于所有列。谢谢你们俩
-
我不明白您当前的
for循环方法的问题。如果有的话,它可能会更高效、可读性和适应性更强。
标签: python-3.x pandas dataframe list-comprehension series