【问题标题】:assigning column names to a pandas series将列名分配给熊猫系列
【发布时间】:2015-04-14 17:19:37
【问题描述】:

我有一个熊猫系列

object x
Ezh2   2
Hmgb   7
Irf1   1

我想将其保存为列名 Gene 和 Count 的数据框 我试过了

x_df = pd.DataFrame(x,columns = ['Gene','count'])

但它不起作用。我想要的最终形式是

Gene Count
Ezh2   2
Hmgb   7
Irf1   1

你能建议怎么做吗

【问题讨论】:

    标签: python pandas dataframe series


    【解决方案1】:

    如果您有一个索引名为“基因”的pd.Series 对象x,则可以使用reset_index 并提供name 参数:

    df = x.reset_index(name='count')
    

    这是一个演示:

    x = pd.Series([2, 7, 1], index=['Ezh2', 'Hmgb', 'Irf1'])
    x.index.name = 'Gene'
    
    df = x.reset_index(name='count')
    
    print(df)
    
       Gene  count
    0  Ezh2      2
    1  Hmgb      7
    2  Irf1      1
    

    【讨论】:

      【解决方案2】:

      您也可以使用.to_frame() 方法。

      如果是系列,我假设“基因”已经是索引,并且在将其转换为 DataFrame 后将保持索引。 .to_frame()name 参数将命名该列。

      x = x.to_frame('count')
      

      如果您希望它们都作为列,您可以重置索引:

      x = x.to_frame('count').reset_index()
      

      【讨论】:

        【解决方案3】:

        您可以创建一个字典并将其作为数据参数传递给数据框构造函数:

        In [235]:
        
        df = pd.DataFrame({'Gene':s.index, 'count':s.values})
        df
        Out[235]:
           Gene  count
        0  Ezh2      2
        1  Hmgb      7
        2  Irf1      1
        

        或者,您可以从系列中创建一个 df,您需要调用 reset_index,因为将使用索引,然后重命名列:

        In [237]:
        
        df = pd.DataFrame(s).reset_index()
        df.columns = ['Gene', 'count']
        df
        Out[237]:
           Gene  count
        0  Ezh2      2
        1  Hmgb      7
        2  Irf1      1
        

        【讨论】:

          猜你喜欢
          • 2018-12-02
          • 2023-01-20
          • 2013-05-29
          • 1970-01-01
          • 2018-02-17
          • 2016-08-30
          • 2017-02-07
          • 2013-02-23
          • 1970-01-01
          相关资源
          最近更新 更多