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

如何将列表存入Python Pandas DataFrame的单个单元格

问题原因

你原有代码的核心问题有两个:

  1. 遍历tmp_df的每一行Category值,同一分类会被重复处理多次
  2. 直接对final_df的整列赋值,会覆盖之前所有行的已有数据,自然得不到按分类聚合的结果

解决方案

你可以按Category对tmp_df分组,逐分组处理:对Data、Rank做去重聚合转列表,同时在分组迭代内执行你自定义的Price计算逻辑,最后拼接生成final_df即可,代码如下:

import pandas as pd

df = pd.read_csv('myfile.csv')
# 筛选符合条件的tmp_df,可根据你的实际需求修改筛选规则
tmp_df = df[df['Acceptable'] == 'Yes'].copy()
# 初始化存储最终行的列表,比逐行at赋值效率更高
final_rows = []

# 按Category分组迭代
for category, group_df in tmp_df.groupby('Category'):
    #################
    # 你原来的Price自定义计算逻辑写在这里,基于当前group_df计算得到该分类的price_val
    #################
    
    # 组装当前分类的行数据
    row = {
        'Data': group_df['Data'].unique().tolist(),
        'Category': category,
        'Acceptable': group_df['Acceptable'].iloc[0],
        'Rank': sorted(group_df['Rank'].unique().tolist()),
        'Price': price_val # 替换为你计算得到的Price值
    }
    final_rows.append(row)

# 生成最终的final_df
final_df = pd.DataFrame(final_rows)

结果说明

运行后得到的final_df会完全符合你给出的示例格式:Data和Rank列为列表格式,每一行对应一个分类的聚合结果,Price为你自定义计算的数值。

内容的提问来源于stack exchange,提问作者V.Nouri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:54:04