代码之家  ›  专栏  ›  技术社区  ›  user9431057

使用大熊猫数据帧的列值创建小/子数据帧

  •  1
  • user9431057  · 技术社区  · 8 年前

    我在这之前发布了一个问题 post 。我想我应该单独问这个问题,因为这只是一个将大数据帧划分为单独的小/子数据帧的操作。

    我有这个 df :

        245           245   245           867               867
    0   Reddit        NaN   NaN           Facebook          NaN
    1   ColumnNeeded  NaN   ColumnValue   ColumnNeeded      ColumnValue
    2   RedditInsight NaN   C             FacbookInsights   A
    3   RedditText    NaN   H             FacbookText       L
    

    现在,我想要两个不同的数据帧, df1 :

        245           245   245           
    0   Reddit        NaN   NaN           
    1   ColumnNeeded  NaN   ColumnValue   
    2   RedditInsight NaN   C             
    3   RedditText    NaN   H
    

    df2 :

        867               867
    0   Facebook          NaN
    1   ColumnNeeded      ColumnValue
    2   FacbookInsights   A
    3   FacbookText       L
    

    基本上,我想根据头的唯一值创建子数据帧。 我试图创建这样的列表:

    list_of_dfs = [set(i) for i in df.columns]
    

    它只返回列值,

    [{245}, {245}, {245}, {867}, {867}]
    

    我能怎么做吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   harvpan    8 年前

    [df[i].reset_index(drop=True) for i in df.columns.unique()]
    

    [             
                  245 245          245
     0         Reddit NaN          NaN
     1   ColumnNeeded NaN  ColumnValue
     2  RedditInsight NaN            C
     3     RedditText NaN            H,                
    
                    867          867
     0         Facebook          NaN
     1     ColumnNeeded  ColumnValue
     2  FacbookInsights            A
     3      FacbookText            L
    ]