I have a dataframe with multiple columns. I want to look at one column and if any of the strings in the column contain @, I want to replace them with another string. How would I go about doing this?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
A dataframe in pandas is composed of columns which are series - Panda docs link
I'm going to use regex, because it's useful and everyone needs practice, myself included! Panda docs for text manipulation
Note the str.replace. The regex string you want is this (it worked for me): '.*@+.*' which says "any character (.) zero or more times (*), followed by an @ 1 or more times (+) followed by any character (.) zero or more times (*)
df['column'] = df['column'].str.replace('.*@+.*', 'replacement')
Should work, where 'replacement' is whatever string you want to put in.
回答2:
My suggestion:
df['col'] = ['new string' if '@' in x else x for x in df['col']]
not sure which is faster.
回答3:
Assuming you called your dataframe df
, you can do:
pd.DataFrame(map(lambda col: map(lambda x: 'anotherString' if '@' in x else x, df[col]), df.columns)).transpose()