当从Dataframe中 Select 单元格时,它返回Series值并将其作为序列追加到列表中.如何将单元格转换为单个整数值?

df = pd.DataFrame({"name": ['John', 'George', 'Ray'], "score": [123, 321, 112]})

x = df.loc[df['name']=='John', 'score'].reset_index(drop=True)
x.astype(int)
x

list=[]
list.append(x)
list

还我[0 123 名称:Score,dtype:int64],但只需[123]

推荐答案

之所以会发生这种情况,是因为一般来说,对于几行来说,df["name"] == "John"可能是真的.

解决此问题的一种简单方法是将"name"列临时转换为具有set_index的DataFrame的索引:

import pandas as pd

df = pd.DataFrame({"name": ['John', 'George', 'Ray'], "score": [123, 321, 112]})
x = df.set_index("name").loc["John", "score"]

list_ = []
list_.append(x)
print(list_)

其他备注:

  • 如果您在"name"列中不止一次出现"John",则此解决方案将遇到与原始代码相同的问题.

  • 根据您的数据模型,将set_index移到定义DataFrame的行上,永久使用名称作为索引可能是有意义的.

  • 隐藏像list这样的内置名称是不好的做法,因为您可能会在以后需要它们.

Python相关问答推荐

Pandas .类型错误:只能将字符串(而不是int)连接到字符串

如何将自动创建的代码转换为类而不是字符串?

回归回溯-2D数组中的单词搜索

CustomTKinter-向表单添加额外的输入字段

如何匹配3D圆柱体的轴和半径?

从今天起的future 12个月内使用Python迭代

使用pandas、matplotlib和Yearbox绘制时显示错误的年份

根据给定日期的状态过滤查询集

如何根据另一列值用字典中的值替换列值

Gekko:Spring-Mass系统的参数识别

需要计算60,000个坐标之间的距离

输出中带有南的亚麻神经网络

图像 pyramid .难以创建所需的合成图像

用合并列替换现有列并重命名

Julia CSV for Python中的等效性Pandas index_col参数

如何将多进程池声明为变量并将其导入到另一个Python文件

迭代嵌套字典的值

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

如何在表中添加重复的列?

joblib:无法从父目录的另一个子文件夹加载转储模型