如何修改Python代码将DataFrame多行结果合并为一个长列表
修改后的代码(合并为长列表输出)
Expentidure_rate = 0.5 Battery_Size = 100 cols = ["Vehicle", "Expenditure", "Battery_State"] # 初始化空列表存储所有记录 V1_records = [] i = 0 # 增加索引边界判断,避免越界报错 while i < len(Updated_DOBS_SUN) and Updated_DOBS_SUN.iloc[i]["Vehicle"] == "V1": V1_Battery_Expenditure = Updated_DOBS_SUN.iloc[i]["Distance"] * Expentidure_rate V1_Battery_State = Battery_Size - V1_Battery_Expenditure Battery_Size = V1_Battery_State i += 1 # 将当前行数据以字典形式存入列表 V1_records.append({ "Vehicle": "V1", "Expenditure": V1_Battery_Expenditure, "Battery_State": V1_Battery_State }) # 把所有记录合并成一个DataFrame V1_distance_reel = pd.DataFrame(V1_records, columns=cols) print(V1_distance_reel)
关键改动说明
- 提前创建空列表
V1_records,循环中只收集每行的字典数据,避免反复创建小DataFrame,提升效率。 - 循环条件补充
i < len(Updated_DOBS_SUN),防止遍历到最后一行时出现索引越界错误。 - 移除原代码中冗余的单行DataFrame创建和for循环,直接用字典存储数据更简洁。
- 循环结束后统一生成完整的DataFrame,一次性输出合并后的长列表结果。
注:原代码中
Expentidure_rate存在拼写错误,正确应为Expenditure_rate,若有需要可修正该拼写。
内容的提问来源于stack exchange,提问作者Anesu Jahura
相关产品推荐
相关产品推荐

