2016-11-23 218 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