如何在pandas DataFrame中重复单元格

3

我希望能够在pandas DataFrame中重复单元格。我想要转换

name, number
a, 2
b, 1

转化为

name, number
a, 2
b, 2
a, 1
b, 1
2个回答

4

np.tile and np.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

这非常有帮助!谢谢。 - Raag Agrawal

3

重复行:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接