【问题标题】:append same Series to data frame columns将相同的系列附加到数据框列
【发布时间】:2019-08-14 20:15:41
【问题描述】:

我有以下数据框:

data=pd.DataFrame(data=[[8,4,2,6,0],[3,4,5,6,7]],columns=["a","b","c","d","e"])

输出是这样的:

    a b c d e
0   8 4 2 6 0
1   3 4 5 6 7

我还有以下系列:

a=pd.Series([3,4])

我想将系列 (a) 附加到数据中的每一列。我用 concat 尝试了几件事,但我似乎从来没有做对。

预期结果是:

    a b c d e
0   8 4 2 6 0
1   3 4 5 6 7
2   3 3 3 3 3
3   4 4 4 4 4 

提前致谢

【问题讨论】:

    标签: python pandas concatenation


    【解决方案1】:

    你可以这样做:

    out=data.append(pd.concat([a]*data.shape[1],axis=1,keys=data.columns),ignore_index=True)
    

       a  b  c  d  e
    0  8  4  2  6  0
    1  3  4  5  6  7
    2  3  3  3  3  3
    3  4  4  4  4  4
    

    【讨论】:

      【解决方案2】:

      这是for循环中的一个方法

      for x ,y in a.iteritems(): 
          data.loc[data.index[-1]+x+1]=y
      
      data
      Out[106]: 
         a  b  c  d  e
      0  8  4  2  6  0
      1  3  4  5  6  7
      2  3  3  3  3  3
      4  4  4  4  4  4
      

      【讨论】:

      • data.loc[len(data)] = y 可能更简单;p
      【解决方案3】:

      pandas.DataFrame.apply

      pandas.Series.append
      我喜欢这个,因为它很漂亮

      data.apply(pd.Series.append, to_append=a, ignore_index=True)
      
         a  b  c  d  e
      0  8  4  2  6  0
      1  3  4  5  6  7
      2  3  3  3  3  3
      3  4  4  4  4  4
      

      打高尔夫球的答案

      data.apply(pd.Series.append, args=(a, 1))
      

      numpy.row_stack

      非常类似于rafaelc's answer

      pd.DataFrame(np.row_stack([
          data,
          a.to_numpy()[:, None].repeat(data.shape[1], axis=1)
      ]), columns=data.columns)
      
         a  b  c  d  e
      0  8  4  2  6  0
      1  3  4  5  6  7
      2  3  3  3  3  3
      3  4  4  4  4  4
      

      【讨论】:

        【解决方案4】:

        使用broadcast_to

        df.append(pd.DataFrame(np.broadcast_to(a.to_frame(), (len(a), df.shape[1])), columns=df.columns), ignore_index=True)
        

           a  b  c  d  e
        0  8  4  2  6  0
        1  3  4  5  6  7
        2  3  3  3  3  3
        3  4  4  4  4  4
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-15
          • 2018-01-14
          • 2021-02-06
          • 2019-01-22
          • 1970-01-01
          • 2013-11-18
          • 2021-06-06
          • 2015-05-19
          相关资源
          最近更新 更多