广州-李明 2024-12-14 10:50 采纳率: 57.1%
浏览 27
已结题

pandas 的list追加问题

创建一个DataFrame

#df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

将DataFrame转换为列表

#data_c = df.columns.tolist()
#data_v = df.values.tolist()
new_list=data_c+data_v

#print(new_list)

问题:打印结果是['A', 'B', [1, 4], [2, 5], [3, 6]]
而我希望的是这样:[['A', 'B'], [1, 4], [2, 5], [3, 6]]
请帮我看下,需要附上代码,谢谢

  • 写回答

11条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    您的期望是将数据框的列名和数据值合并到一个列表中,其中每个元素都是一个列表,包含列名和数据值。为了实现这一点,您可以使用Pandas的DataFrame结构来轻松地完成。这里是一个简单的解决方案:

    import pandas as pd
    
    # 假设您已经有一个DataFrame df
    df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
    
    # 将列名和值分别存储为列表
    data_c = df.columns.tolist()  # 存储列名列表
    data_v = df.values.tolist()   # 存储数据值列表
    
    # 将两者合并为一个列表的列表,其中每个元素包含列名和数据值
    new_list = list(zip(data_c, data_v))  # 使用zip函数将列名和值配对并转换为列表的列表
    
    print(new_list)  # 输出结果应为:[['A', [1, 2, 3]], ['B', [4, 5, 6]]]
    

    这里的关键是使用zip函数将列名和对应的值配对为一个元组列表。然后,我们将这些元组转换为列表的列表形式。这样,您就可以得到期望的输出格式了。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 赞助了问题酬金15元 12月14日
  • 创建了问题 12月14日