remove from , and transfer to next cell in pandas for eg,
| city | country |
|---|---|
| Toronto,Canada | N/A |
output:
| city | country |
|---|---|
| Toronto,Canada | Canada |
CodePudding user response:
If need replace missing value in country column by last value after split city by , use:
df['country'] = df['country'].fillna(df['city'].str.split(',').str[-1])
Or if need assign all column in country column:
df['country'] = df['city'].str.split(',').str[-1]
CodePudding user response:
You can use str.extract with a word regex \w anchored to the end of the string ($) to get the last word:
# replacing all values
df['country'] = df['city'].str.extract('(\w )$', expand=False)
# only updating NaNs
df.loc[df['country'].isna(), 'country'] = df['city'].str.extract('(\w )$', expand=False)
output:
city country
0 Toronto,Canada Canada
Alternatively, you can use the ([^,] )$ regex that is more permissive (any terminal character except ,)
