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

如何在Python Pandas中映射DataFrame列名与指定行单元格值

Pandas 提取目标行列值生成键值对字典

核心实现方法

要从筛选出的单行数据中提取对应值列表,直接利用Pandas行对象转列表的方法即可,以下是几种可靠方式:

  • 方法1:通过iloc取单行后转列表
    因为df.loc[...]返回的是DataFrame类型,用iloc[0]定位到第一行(筛选结果为单行时),再调用tolist()转成值列表:

    rowValues = rowData.iloc[0].tolist()
    
  • 方法2:通过values展平后转列表
    把DataFrame的二维数值数组展平为一维,再转列表:

    rowValues = rowData.values.flatten().tolist()
    

完整示例代码

import pandas as pd
import numpy as np

# 模拟测试用DataFrame
df = pd.DataFrame({
    'ColA': ['apple', 'banana'],
    'ColB': [np.nan, 2],
    'ColC': ['height', 'length'],
    'ColD': ['width', 'depth'],
    'ColE': ['size', 'volume']
})

# 获取列名列表
colValues = df.columns.values.tolist()
# 筛选目标行
rowData = df.loc[df['ColA'] == 'apple']
# 提取行值列表
rowValues = rowData.iloc[0].tolist()
# 生成列名-值的字典
result_dict = dict(zip(colValues, rowValues))

# 输出结果
print(result_dict)
# 输出:{'ColA': 'apple', 'ColB': nan, 'ColC': 'height', 'ColD': 'width', 'ColE': 'size'}

多行筛选的处理方式

如果loc筛选出多行数据,需要遍历每一行生成字典的话,用iterrows()循环处理:

for _, row in rowData.iterrows():
    row_values = row.tolist()
    single_row_dict = dict(zip(colValues, row_values))
    # 这里可以添加写入Excel的逻辑,比如用openpyxl或pandas的to_excel指定列顺序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:25:15