Python srt.lower()不适用于dataframe列

Python srt.lower()不适用于dataframe列,python,pandas,lowercase,kaggle,Python,Pandas,Lowercase,Kaggle,我正在使用Kaggle提供的泰坦尼克号数据集。我把它放在一个数据框中,我想把“sex”列的大小写改为小写。我正在使用以下代码 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() 也在努力 df['sex'].str.lower() 但是当我运行df['se

我正在使用Kaggle提供的泰坦尼克号数据集。我把它放在一个数据框中,我想把“sex”列的大小写改为小写。我正在使用以下代码

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()
也在努力

df['sex'].str.lower()

但是当我运行
df['sex'].unique()
时,我得到三个唯一的值
[男,女,女]

为什么我的代码不降低字符串的大小写并将其保存回数据帧,以便从
.unique
方法中获得
[male,female]

str.lower()
不会修改现有列。它只返回一个应用了小写转换的新序列。如果要覆盖原始列,则需要将结果分配回原始列:

df['sex'] = df.sex.str.lower()

实际上,所有操作都返回一个副本,您需要将函数的结果分配给某个对象或函数本身,以使结果保持不变