【问题标题】:How can I make my dataframe into a numpy array by column rather than by row?如何按列而不是按行将我的数据框变成一个 numpy 数组?
【发布时间】:2022-01-16 21:23:05
【问题描述】:

考虑到我有这个示例数据框:

d = {'Gender': [1,1,0,1,0], 'Employed': [1,0,0,1,1]}

我希望这是一个这种形式的数组:

[[1 1 0 1 0][1 0 0 1 1]]

当我跑步时

d[['Gender', 'Employed']].to_numpy()

我得到一个[[1 1][1 0][0 0][1 1][0 1]] 形式的数组。

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    您可以转置DataFrame,使用values 方法获取底层numpy 数组并使用tolist 方法转换为列表:

    out = pd.DataFrame(d).T.values.tolist()
    

    输出:

    [[1, 1, 0, 1, 0],
     [1, 0, 0, 1, 1]]
    

    【讨论】:

      【解决方案2】:

      只需转置即可。

      d[['Gender', 'Employed']].values.T
      

      【讨论】:

        【解决方案3】:

        这可以得到你预期的输出

        import pandas as pd
        df = pd.DataFrame({'Gender': [1,1,0,1,0], 'Employed': [1,0,0,1,1]})
        print([df[column].to_list() for column in df])
        

        输出:

        [[1, 1, 0, 1, 0], [1, 0, 0, 1, 1]]
        

        如果您对这里有更多期望,请告诉我。

        【讨论】:

          猜你喜欢
          • 2019-01-18
          • 1970-01-01
          • 1970-01-01
          • 2018-09-28
          • 1970-01-01
          • 1970-01-01
          • 2021-12-10
          • 1970-01-01
          相关资源
          最近更新 更多