代码之家  ›  专栏  ›  技术社区  ›  Sembei Norimaki

pandas行数据到表窗体

  •  1
  • Sembei Norimaki  · 技术社区  · 6 年前

    我有一个csv文件中的信息,该文件按行显示:

    Color     Shape    Value
    red       triangle    10
    red       circle      11
    blue      triangle    12
    blue      circle      13
    

    我需要将其转换为矩阵形式的新数据框,其中列是颜色,索引是形状

               red  blue
    triangle    10    12
    circle      11    13
    

    我通过循环迭代的方式做到了这一点

    new_df = pd.DataFrame(columns=list_of_colors, index=list_of_shapes)
    
    for color_i in list_of_colors:
      # this gives me the values of each color sorted* by Shape
      df[df['Color'] == color_i].sort_values('Shape')['Value']
    
      # so I can append this to the new dataframe
      ...
    
    • 我真的不需要对形状进行排序,但是我需要保证在每次迭代中,检索到的形状列表的顺序都是相同的,否则生成的表将是错误的

    这很管用,我想我做得太过分了。 是否有一种直接的方法获取rowwise信息并将其转换为表格形式?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  3
  •   clemens    6 年前

    你可以用 pivot_table() 以下内容:

    对于数据: 导入熊猫作为PD

    df = pd.DataFrame({'Color': ['red', 'red', 'blue', 'blue'],
                       'Shape': ['triangle', 'circle', 'triangle', 'circle'],
                       'Value': [10, 11, 12, 13]})
    
    
    df.pivot_table(index = 'Color', columns = 'Shape', values = 'Value')
    

    结果是:

    Shape   circle  triangle
    Color       
    blue     13       12
    red      11       10