2016-11-23 181 views
1

的类型我有一列数据框熊猫:转换

          category 
0   [Рубрики/Hi-Tech/Интернет/Универсальное/ ] 
1 [/Рубрики/Бизнес/Недвижимость/Базы недвижимост... 
2 [] 
3 [/Рубрики/Бизнес/Недвижимость/Базы недвижимост... 
4   [Рубрики/Hi-Tech/Интернет/Универсальное/ ] 
5 [] 
6   [Рубрики/Hi-Tech/Интернет/Универсальное/ ] 
7 [/Рубрики/Бизнес/Недвижимость/Базы недвижимост... 
8   [Рубрики/Hi-Tech/Интернет/Универсальное/ ] 
9 [/Рубрики/Бизнес/Недвижимость/Базы недвижимост... 
10   [Рубрики/Hi-Tech/Интернет/Универсальное/ ] 
11 [/Рубрики/Бизнес/Недвижимость/Базы недвижимост... 
12 [] 
13 [/Рубрики/Бизнес/Недвижимость/Базы недвижимост... 
14   [Рубрики/Hi-Tech/Интернет/Универсальное/ ] 

有列列表。我需要从每个列表获得第一个字符串,但有些列表是空的,当我尝试使用

df.category.iloc[0] 

我得到

ValueError: Length of values does not match length of index

如何修复这个错误,并得到字符串,而不是名单?

回答

6

我认为你可以使用indexing with str

df.category = df.category.str[0] 

样品:

df = pd.DataFrame({'category': [['aw','be'],[],['tr','yt','uy'],['tre']]}) 
print (df) 
     category 
0  [aw, be] 
1   [] 
2 [tr, yt, uy] 
3   [tre] 

df.category = df.category.str[0] 
print (df) 
    category 
0  aw 
1  NaN 
2  tr 
3  tre 

如果需要用空字符串替换NaN

df.category = df.category.str[0].fillna('') 
print (df) 
    category 
0  aw 
1   
2  tr 
3  tre