假设我有一个大小为 NxM(N 行和 M 列)的预定义数据框,它使用所有 NaN 进行初始化。
现在说我有一系列尺寸 M,我想用那个系列填充所有行。例如,如果该系列是整数 [3,4,5],其中 N=2,M=3,我的结果数据框应该是(我已包含列和行索引):
0 | 1 | 2 | |
---|---|---|---|
0 | 3 | 4 | 5 |
1 | 3 | 4 | 5 |
或者,假设我有一系列大小为 N,我想用该系列填充所有列。例如,如果系列是整数 [10, 11],其中 N=2,M=3,我的结果数据框应该是(我已包含列和行索引):
0 | 1 | 2 | |
---|---|---|---|
0 | 10 | 10 | 10 |
1 | 11 | 11 | 11 |
我如何在纯熊猫中执行这两项操作而不使用类似np.repeat
or的东西np.tile
?
如果需要,您可以使用np.broadcast_to
, last 为第二个样本数据转置输出:
s = pd.Series([3,4,5])
N = 2
M = 3
df = pd.DataFrame(index=range(N), columns=range(M))
df[:] = np.broadcast_to(s.to_numpy(), (N, M))
print (df)
0 1 2
0 3 4 5
1 3 4 5
s = pd.Series([10, 11])
N = 2
M = 3
df = pd.DataFrame(index=range(N), columns=range(M))
df[:] = np.broadcast_to(s.to_numpy(), (M, N)).T
print (df)
0 1 2
0 10 10 10
1 11 11 11
s = pd.Series([3,4,5])
N = 2
M = 3
df = pd.DataFrame(np.broadcast_to(s.to_numpy(), (N, M)))
print (df)
0 1 2
0 3 4 5
1 3 4 5
s = pd.Series([10, 11])
N = 2
M = 3
df = pd.DataFrame(np.broadcast_to(s.to_numpy(), (M, N)).T)
print (df)
0 1 2
0 10 10 10
1 11 11 11
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句