首页 > 解决方案 > 当我尝试将 pandas 数据帧的一行的索引作为整数获取时,错误“只能将大小为 1 的数组转换为 Python 标量”

问题描述

我有一个包含股票代码和许多其他列的 excel 文件。我有以下 excel 文件的简化版本:

象征 行业
0 苹果 技术制造
1 微软 技术制造
2 特斯拉 电动汽车制造

从本质上讲,我试图根据符号获得行业。例如,如果我使用“AAPL”,我想获得“技术制造”。到目前为止,这是我的代码。

import pandas as pd

excel_file1 = 'file.xlsx'
df = pd.read_excel(excel_file1)
stock = 'AAPL'
row_index = df[df['Symbol'] == stock].index.item()
industry = df['Industry'][row_index]
print(industry)

尝试获取 row_index 后,出现错误:“ValueError:只能将大小为 1 的数组转换为 Python 标量”

有人可以解决这个问题吗?还可以说 row_index 有效:这段代码(下面)是否正确?

industry = df['Industry'][row_index]

标签: pythonexcelpandas

解决方案


利用:

stock = 'AAPL'
industry = df[df['Symbol'] == stock]['Industry'][0]

或:,如果您想使用 搜索index,请使用df.loc

stock = 'AAPL'
industry = df.loc[df[df['Symbol'] == stock].index, 'Industry'][0]

但是第一个好多了。


推荐阅读