2015-04-20 42 views
1

我是熊猫新手,并且在包含字符串(非小写字母)的熊猫数据框中有一列,我想将其转换为小写字母。数据框列名为:降低熊猫数据框列中的每个单词

df['labels'] 

而它的元素(字符串)所有列表:

0  ["Cat", "Dog", "Horse"] 
1  ["Pig", "Fish", "Giraffe"] 
.... 

我想小写列表中的每个字符串,凭直觉我尝试这样做:

for element in input_data['labels']: 
    for word in element: 
     word.lower() 

但在print(input_data["labels"]上没有小写字母。

+0

将它们存储为列表的任何理由?每个列表是否总是只包含3个元素?如果是这样,考虑将它们存储在单独的列,如果它是有意义的? – Zero

+0

字符串是不可变的,所以'word.lower()'什么都不做,只是创建一个新的字符串。 –

+0

@JohnGalt每个人都不一定有3个元素,我还有其他的理由希望将他们保留在列表中 – user1452494

回答

1

以下的工作,但通常这是一个坏主意,列出存储数据IMO:

In [18]: 

df['labels'] = df['labels'].apply(lambda x: [w.lower() for w in x]) 
df 
Out[18]: 
       labels 
0  [cat, dog, horse] 
1 [pig, fish, giraffe] 
1

这将使你想你想 -

df = pd.DataFrame({'Labels' : [["Cat", "Dog", "Horse"], 
           ["Pig", "Fish", "Giraffe"]]}) 

df['Labels'].apply(lambda x: [y.lower() for y in x]) 

0  [cat, dog, horse] 
1 [pig, fish, giraffe] 
Name: Labels, dtype: object 

,像提到的在评论中,你需要以这种方式存储数据吗?