【问题标题】:How to repeat cells in pandas DataFrame如何在 pandas DataFrame 中重复单元格
【发布时间】:2017-11-01 21:26:25
【问题描述】:

我想在 pandas DataFrame 中重复单元格。我要转

name, number
a, 2
b, 1

进入

name, number
a, 2
b, 2
a, 1
b, 1

【问题讨论】:

    标签: python pandas dataframe statistics


    【解决方案1】:

    重复行:

    In [10]: pd.concat([df] * 2, ignore_index=True)
    Out[10]:
      name  number
    0    a       2
    1    b       1
    2    a       2
    3    b       1
    

    列值的笛卡尔积:

    In [14]: from itertools import product
    
    In [15]: pd.DataFrame(list(product(df.name, df.number)), columns=df.columns)
    Out[15]:
      name  number
    0    a       2
    1    a       1
    2    b       2
    3    b       1
    

    【讨论】:

      【解决方案2】:

      np.tilenp.repeat

      pd.DataFrame(dict(
              name=np.tile(df.name.values, 2),
              number=np.repeat(df.number.values, 2)
          ))
      
        name  number
      0    a       2
      1    b       2
      2    a       1
      3    b       1
      

      pd.MultiIndex.from_product

      pd.DataFrame(
          pd.MultiIndex.from_product(
              [df.name.unique(), df.number.unique()]
          ).values.tolist(), columns=df.columns)
      
        name  number
      0    a       2
      1    b       2
      2    a       1
      3    b       1
      

      【讨论】:

      • 这非常有帮助!谢谢。
      猜你喜欢
      • 2019-05-05
      • 1970-01-01
      • 2016-12-26
      • 2017-06-10
      • 2014-07-16
      • 2020-02-13
      • 2018-09-11
      • 2020-06-17
      • 2021-11-14
      相关资源
      最近更新 更多