【问题标题】:Pandas reformatting multiple columns into one.熊猫将多列重新格式化为一列。
【发布时间】:2015-07-08 10:50:45
【问题描述】:

我有一些代码可以生成依赖关系的 pandas 数据框:

Input | Output | Script

我正在尝试从这个矩阵生成一个不同值的列表,作为一个只有一列的新表。

nodes

我试过了

Nodes_List = pd.DataFrame({nodes: [dependency['Input'].values,
                                   dependency['Output'].values,
                                   dependency['Script'].values]})

但不是将所有三列合并,而是得到一个三行数据框,其中的值作为逗号分隔的值?如何将三列相互附加,然后优雅地获得不同的值?

谢谢

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    说你的数据框是这样的

    In [295]: df
    Out[295]: 
      Input Output Script
    0   aaa    bbb    ggg
    1   ddd    hhh    ccc
    2   eee    bbb    fff
    3   aaa    bbb    kkk
    

    您可以使用ravel() 将其展平,然后采用unique

    In [296]: np.unique(df.values.ravel())
    Out[296]: array(['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh', 'kkk'], dtype=object)
    

    或者直接在df 上使用np.unique() 也会得到相同的输出

    In [301]: np.unique(df)
    Out[301]: array(['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh', 'kkk'], dtype=object)
    

    而且,因此可以创建Nodes_List

    In [297]: pd.DataFrame({'nodes': np.unique(df)})
    Out[297]:
      nodes
    0   aaa
    1   bbb
    2   ccc
    3   ddd
    4   eee
    5   fff
    6   ggg
    7   hhh
    8   kkk
    

    【讨论】:

      猜你喜欢
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 2020-06-17
      • 2017-05-28
      • 1970-01-01
      • 2019-07-04
      相关资源
      最近更新 更多