replace string in pandas dataframe

后端 未结 3 1848
南方客
南方客 2020-12-21 06:02

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 wou

相关标签:
3条回答
  • 2020-12-21 06:35

    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.

    0 讨论(0)
  • 2020-12-21 06:42

    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()
    
    0 讨论(0)
  • 2020-12-21 06:57

    My suggestion:

    df['col'] = ['new string' if '@' in x else x for x in df['col']]
    

    not sure which is faster.

    0 讨论(0)
提交回复
热议问题