如何使用Pandas提取Excel工作表中的特定单元格值
问题:提取Excel特定单元格值并按指定格式输出
我正在编写以下代码,想要提取如高亮框所示的特定单元格值(黄色单元格对应值为Summer,红色单元格对应值为12,10,8)。现有代码如下:
import pandas as pd import numpy as np file_xlsx = "Book1.xlsx" yellow_cell = pd.read_excel(file_xlsx , sheet_name='Temp', usecols= 'Season') red_cell = pd.read_excel(file_xlsx , sheet_name='Temp', usecols= 'Ave')
希望执行以下打印语句:
print(yellow_cell) print(red_cell)
能得到如下结果:
Summer 12,10,8
请问该如何修改代码实现需求?
解决方案
当前代码用usecols读取的是整列数据,返回的是DataFrame对象,无法直接输出目标格式的结果,需调整如下:
- 先读取整个工作表,再定位目标单元格/值;
- 针对黄色单元格的
Summer,提取对应位置的单个值; - 针对红色单元格的三个数值,将其拼接为逗号分隔的字符串。
修改后的代码:
import pandas as pd file_xlsx = "Book1.xlsx" # 读取目标工作表的全部数据 df = pd.read_excel(file_xlsx, sheet_name='Temp') # 提取黄色单元格的Summer(假设为Season列的第1行,pandas索引从0开始,根据实际位置调整) yellow_cell = df['Season'].iloc[0] # 提取红色单元格的12,10,8(假设为Ave列的前3行,根据实际位置调整切片范围) red_target_values = df['Ave'].iloc[:3].astype(str).tolist() red_cell = ','.join(red_target_values) # 输出结果 print(yellow_cell) print(red_cell)
注意事项
- 需根据Excel中实际的单元格位置调整
.iloc的索引值,比如若Summer在Excel的第3行(对应pandas索引2),则改为df['Season'].iloc[2]; - 若
Ave列的目标值不是连续的前3行,可通过条件筛选定位,比如df[df['Ave'].isin([12,10,8])]['Ave']再进行拼接。
内容的提问来源于stack exchange,提问作者Behseini
相关产品推荐
相关产品推荐

