You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas提取CSV中指定姓名对应的信用值并存入变量?

如何用Pandas根据姓名提取对应的Credit数值?

我来帮你搞定这个问题!你现在得到的输出是Pandas的Series对象,所以会附带索引和数据类型信息,要拿到纯数值用于后续运算,有几种简单的修正方法:

首先先确认你的CSV内容:

Names Credit
0 James 21
1 John 34
2 Lucas 20
3 William 11

问题原因

你原代码里的df[df['Names'] == n]['Credit']返回的是一个Series对象(即使只有一个匹配项),所以输出会包含索引、列名和数据类型,而不是单纯的数值。

解决方案

方法1:用.iloc[0]提取第一个匹配值

这是最直观的方式,直接取筛选后Series的第一个元素:

import pandas as pd
df = pd.read_csv('file.csv')
n = input('Enter a name: ')
x = df[df['Names'] == n]['Credit'].iloc[0]
print(x)  # 输入John会输出34

方法2:用.item()直接获取原生数值

当你确定只有一个匹配结果时,.item()可以直接返回Python原生的int/float类型,非常适合后续数学运算:

import pandas as pd
df = pd.read_csv('file.csv')
n = input('Enter a name: ')
x = df[df['Names'] == n]['Credit'].item()
print(x)

方法3:用.at[]精准定位

先找到匹配行的索引,再用.at[]直接定位单元格值:

import pandas as pd
df = pd.read_csv('file.csv')
n = input('Enter a name: ')
match_row = df[df['Names'] == n]
x = match_row.at[match_row.index[0], 'Credit']
print(x)

方法4:设置姓名为索引,高效多次查询

如果需要多次根据姓名查找,把Names列设为索引会更高效:

import pandas as pd
df = pd.read_csv('file.csv')
df.set_index('Names', inplace=True)  # 将Names设为索引

n = input('Enter a name: ')
x = df.loc[n, 'Credit']
print(x)

额外优化:处理姓名不存在的情况

如果输入的姓名不在数据里,上面的方法会报错,你可以加个判断让代码更健壮:

import pandas as pd
df = pd.read_csv('file.csv')
n = input('Enter a name: ')

matches = df[df['Names'] == n]
if not matches.empty:
    x = matches['Credit'].item()
    print(f"Credit value: {x}")
    # 这里可以写你的后续数学运算代码
else:
    print(f"Oops, name '{n}' wasn't found in the data!")

内容的提问来源于stack exchange,提问作者AFANGA ZAKARYA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 06:47:28