我有一个带
列的数据框 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:值的长度与索引的长度
不匹配
如何修复该错误并获取字符串而不是列表?
答案 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