Pandas:转换列的类型
Posted
技术标签:
【中文标题】Pandas:转换列的类型【英文标题】:Pandas: convert type of column 【发布时间】:2017-04-07 12:07:42 【问题描述】:我有一个带列的数据框
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】:我觉得你可以用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
【讨论】:
以上是关于Pandas:转换列的类型的主要内容,如果未能解决你的问题,请参考以下文章
使用 seaborn 绘图时转换 pandas 列中的数据类型
如何将 Pandas 数据框中的字符串转换为“日期”数据类型?