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

Python3 Pandas从DataFrame提取数据生成指定字典与列表实现求助

实现代码

import pandas as pd

# 原有数据读取逻辑
colName = ['carIndex', 'carMake', 'Floatnum']
data2 = pd.read_csv('cars.csv', names=colName)

# 可选操作:清洗carMake列的前导/后置空格,避免排序、匹配异常
# 不需要清洗可注释此行,输出的厂商映射字典会和你给出的示例格式完全一致
data2['carMake'] = data2['carMake'].str.strip()

# 1. 生成carIndex映射字典:按字母序排序后映射为0-2
sorted_cars = sorted(data2['carIndex'].unique())
car_map = {car: idx for idx, car in enumerate(sorted_cars)}

# 2. 生成carMake映射字典:按字母序排序后映射为0-1
sorted_makes = sorted(data2['carMake'].unique())
make_map = {make: idx for idx, make in enumerate(sorted_makes)}

# 3. 生成嵌套列表:按顺序匹配对应Floatnum,无匹配填None
result_list = []
for car in sorted_cars:
    car_filter = data2['carIndex'] == car
    current_vals = []
    for make in sorted_makes:
        match_res = data2[car_filter & (data2['carMake'] == make)]['Floatnum']
        current_vals.append(match_res.iloc[0] if not match_res.empty else None)
    result_list.append(current_vals)

# 4. 封装为元组输出
final_result = (car_map, make_map, result_list)
print(final_result)

输出说明

基于你提供的样本数据,清洗空格后的输出结果为:
({'Car A': 0, 'Car B': 1, 'Car C': 2}, {'Make X': 0, 'Make Y': 1}, [[2.5, 3.5], [1.5, 4.0], [2.0, None]])
和你给出的示例差异仅为Car C对应的Make X取值,示例值为演示用,上述输出和你提供的CSV实际数据完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:45:04