问题
I'm working with the Titanic dataset available from Kaggle. I have it in a dataframe and i want to change the case of the "sex" column to lowercase. I'm using the following code
import pandas as pd
df = pd.read_csv('titanic.csv')
print dfFull['sex'].unique()
df.sex.str.lower()
#check if it worked
print df['sex'].unique()
and also trying
df['sex'].str.lower()
but when I run df['sex'].unique()
I get three unique values [male, female, Female]
.
Why does my code not lower the case of the strings and save it back to the dataframe so i get [male, female]
of from the .unique
method?
回答1:
str.lower()
does not modify the existing column. It just returns a new Series with the lowercase transform applied. If you want to overwrite the original column, you need to assign the result back to it:
df['sex'] = df.sex.str.lower()
来源:https://stackoverflow.com/questions/26473536/pandas-srt-lower-not-working-on-dataframe-column