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

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]]
请帮我看下,需要附上代码,谢谢

  • 写回答

12条回答 默认 最新

  • qq_230177505762 优质创作者: 嵌入式与硬件开发技术领域 2024-12-14 10:51
    关注

    以下参考免费微信小程序:皆我百晓生 作答,并由本人整理回复。

    要实现你期望的结果,我们需要将data_c(列名列表)作为一个单独的列表元素添加到new_list中,而不是将其与data_v(数据值列表)中的每个元素合并。以下是修改后的代码:

    import pandas as pd
    
    # 创建DataFrame
    df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
    
    # 获取列名列表
    data_c = df.columns.tolist()
    
    # 获取数据值列表
    data_v = df.values.tolist()
    
    # 将列名列表作为一个单独的元素添加到new_list中
    new_list = [data_c] + data_v
    
    # 打印结果
    print(new_list)
    

    这段代码会输出你期望的结果:

    [['A', 'B'], [1, 4], [2, 5], [3, 6]]
    

    这里的关键点是使用[data_c]将列名列表作为一个整体添加到new_list中,而不是使用data_c + data_v,后者会将列名列表中的每个元素与数据值列表中的每个元素合并。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(11条)

报告相同问题?

问题事件

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