熊猫:转换类型的列

时间:2016-11-23 12:57:06

标签: python string list pandas dataframe

我有一个带

列的数据框
                                         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:值的长度与索引的长度

不匹配

如何修复该错误并获取字符串而不是列表?

1 个答案:

答案 0 :(得分: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