一尘不染

将数据框重塑为具有无限行的数据框,并在无值的情况下填充零

python

有没有一种方法可以将DataFrame重塑为具有不受限制的行的另一个。我只想要一个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

我想用零填充来重塑它,而没有任何价值。

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

据我所知,在numpy reshape方法中,您需要明确标识要多少列和行。


阅读 193

收藏
2021-01-20

共1个答案

一尘不染

采用:

df = (pd.DataFrame(letters.groupby(letters.index // 3)['Letters']
                          .apply(list)
                          .values
                          .tolist(), columns=['first','second','third']).fillna(0))

print (df)
  first second third
0     A      B     C
1     D      E     F
2     G      H     I
3     J      0     0
2021-01-20