如何将list转换为DataFrame并保留原列表中的完整对象?
实现方案
首先我们假设你自定义的item类有对应存储字母和数字的属性,以下示例用letters和numbers作为属性名,你可以根据自己实际的类定义替换。
先给出测试用的item类定义示例:
class item: def __init__(self, letters, numbers): self.letters = letters self.numbers = numbers # 控制对象打印格式为你需要的item(xxx, xxx) def __repr__(self): return f"item({self.letters}, {self.numbers})"
方法1:直接构造各列(简洁高效,适合大多数场景)
import pandas as pd # 你的原始对象列表 L = [item("ABC", 123), item("DEF", 456), item("GHI", 789)] # 分别提取三列数据生成DataFrame df = pd.DataFrame({ "Letters": [obj.letters for obj in L], "Numbers": [obj.numbers for obj in L], "Item": L })
方法2:单次遍历构造(适合超长列表)
如果你的原始列表数据量很大,不想多次遍历列表,可以用一次遍历提取所有字段:
import pandas as pd L = [item("ABC", 123), item("DEF", 456), item("GHI", 789)] rows = [] for obj in L: rows.append((obj.letters, obj.numbers, obj)) df = pd.DataFrame(rows, columns=["Letters", "Numbers", "Item"])
两种方法得到的DataFrame都完全符合你要求的格式。
内容的提问来源于stack exchange,提问作者Trippingbillies41
相关产品推荐
相关产品推荐

