Skip to main content
 首页 » 编程设计

python之将数据框 reshape 为具有无限行并在没有值的情况下填充零的数据框

2025年05月04日15mengfanrong

有没有办法将 DataFrame reshape 为另一个具有不受限制的行。我只想要一个有 3 列的 DataFrame,不管 DataFrame 中有多少行?

例如,

letters = pd.DataFrame({'Letters' : ['A', 'B', 'C','D', 'E', 'F', 'G', 'H',  
'I','J']}) 
 
Letters 
0   A 
1   B 
2   C 
3   D 
4   E 
5   F 
6   G 
7   H 
8   I 
9   J 

我想像这样用填充零 reshape 它,在没有值(value)的地方。

first   second  third 
A       B       C 
D       E       F 
G       H       I 
J       0       0 

据我所知,在 numpy reshape 方法中你需要明确地确定你想要多少列和行..

请您参考如下方法:

你可以使用 NumPy reshape . arr.reshape((-1, 3)) 告诉 NumPy 将 arr reshape 为 (n, 3) ,其中 n 是根据 arr 的大小和其他给定维度的大小(例如,在本例中,值为 3)计算的。

import numpy as np 
import pandas as pd 
 
letters = pd.DataFrame({'Letters' : ['A', 'B', 'C','D', 'E', 'F', 'G', 'H', 'I','J']}) 
arr = np.empty(((len(letters) - 1)//3 + 1)*3, dtype='O') 
arr[:len(letters)] = letters['Letters'] 
result = pd.DataFrame(arr.reshape((-1, 3)), columns='first second third'.split()) 
result = result.fillna(0) 
print(result) 

打印

  first second third 
0     A      B     C 
1     D      E     F 
2     G      H     I 
3     J      0     0