如何通过多次重复Series创建DataFrame?

7

是否有类似以下函数的方法,用于创建包含十列Series s的DataFrame?

df = pd.DataFrame(s, 10)

谢谢你!

你是指重复的数据还是只是重复的值?如果是后者,你可以使用pd.concat([df]*10, axis=1) - EdChum
2个回答

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 参数。


0

我不知道有没有纯numpy的解决方案可以满足你的需求,但你可以使用列表推导式和zip函数来进行转置。

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

没有理解力...

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

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