如何通过Pandas .loc[]获取字符串变量而非DataFrame?
解决Pandas提取单行文本返回DataFrame而非字符串的问题
你用df.loc[[i], ['text']]得到DataFrame类型的原因是行索引和列名都用了双层方括号,这会让Pandas返回保留行/列维度的DataFrame对象,而非单个字符串。以下是几种直接获取字符串的方法:
方法1:直接定位标量(最推荐)
去掉行索引的方括号,用单个索引值+列名直接定位:
# i是有效的整数索引 string = df.loc[i, 'text']
这样返回的就是对应位置的字符串,可直接用于文本处理,用type(string)验证会得到<class 'str'>。
方法2:从现有DataFrame中提取字符串
如果因场景限制必须保留双层方括号的写法,可通过以下方式提取字符串:
- 用
iloc定位第一个元素:string = df.loc[[i], ['text']].iloc[0, 0] - 用
values获取底层数组后取元素:string = df.loc[[i], ['text']].values[0][0] - 用
squeeze()压缩维度(自动把单行单列的DataFrame转成标量):string = df.loc[[i], ['text']].squeeze()
内容的提问来源于stack exchange,提问作者Chris Kouts
相关产品推荐
相关产品推荐

