如何通过重复系列多次来创建数据框?

7 投票
2 回答
12143 浏览
提问于 2025-04-18 13:25

有没有类似下面这样的函数,可以用来创建一个有十列的DataFrame,里面的内容是Series s?

df = pd.DataFrame(s, 10)

谢谢!

2 个回答

0

我不知道有没有纯粹用numpy实现你想要的功能,但你可以用列表推导和zip来进行转置。

df = pd.DataFrame(zip(*[s for i in range(10)]))

如果不使用列表推导的话...

df = pd.DataFrame(zip(*[s]*10))
19

使用concat:

In [57]:

s = pd.Series(arange(10))
s
Out[57]:
0    0
1    1
2    2
3    3
4    4
5    5
6    6
7    7
8    8
9    9
dtype: int32
In [59]:

pd.concat([s] * 10, axis=1)

Out[59]:
   0  1  2  3  4  5  6  7  8  9
0  0  0  0  0  0  0  0  0  0  0
1  1  1  1  1  1  1  1  1  1  1
2  2  2  2  2  2  2  2  2  2  2
3  3  3  3  3  3  3  3  3  3  3
4  4  4  4  4  4  4  4  4  4  4
5  5  5  5  5  5  5  5  5  5  5
6  6  6  6  6  6  6  6  6  6  6
7  7  7  7  7  7  7  7  7  7  7
8  8  8  8  8  8  8  8  8  8  8
9  9  9  9  9  9  9  9  9  9  9

如果你想把数据当作行来添加,就把axis=1这个参数去掉。

撰写回答