如何将Pandas DataFrame中选取的单元格转为单个int值?
如何将Pandas选取的Series类型单元格值转为单个int并添加到列表?
你当前的问题是:通过df.loc筛选DataFrame得到的是单个元素的Series,直接添加到列表后会保留Series结构,而非单个int值。以下是几种可行的解决方法:
方法1:使用.values[0]提取底层数值
直接获取Series对应的numpy数组,再取第一个元素:
import pandas as pd df = pd.DataFrame({"name": ['John', 'George', 'Ray'], "score": [123, 321, 112]}) x = df.loc[df['name']=='John', 'score'].values[0] my_list = [] my_list.append(x) print(my_list) # 输出: [123]
方法2:使用.iloc[0]定位单个元素
利用位置索引直接取出Series的第一个(也是唯一一个)元素:
x = df.loc[df['name']=='John', 'score'].iloc[0] my_list = [] my_list.append(x) print(my_list) # 输出: [123]
方法3:使用.item()提取标量值(推荐)
.item()是Pandas专为单个元素的Series/DataFrame设计的方法,直接返回对应标量值:
x = df.loc[df['name']=='John', 'score'].item() my_list = [] my_list.append(x) print(my_list) # 输出: [123]
补充:你原代码的问题点
x.astype(int)没有重新赋值给x,Pandas的方法默认返回新对象,不会修改原变量;- 即使转换了类型,
x仍然是Series,而非单个数值,需要进一步提取标量才能得到int值。
内容的提问来源于stack exchange,提问作者bluekit46
相关产品推荐
相关产品推荐

