如何使用 Nan 值填充不同大小的 Pandas 数据框列

Ksh*_*ena 6 python dataframe pandas

有什么方法可以均衡数据框列中列表的大小,如下所示:

0             [2116.0, 6999.0, 2116.0, 2166.0, 2503.0]
1                             [2113.0, 6999.0, 2314.0]
2             [2111.0, 6999.0, 2111.0, 2362.0, 2503.0]
3                     [2100.0, 6999.0, 2362.0, 2113.0]
4                     [2111.0, 6999.0, 2111.0, 2503.0]
Run Code Online (Sandbox Code Playgroud)

像这样的东西(南在列表的末尾):

0             [2116.0, 6999.0, 2116.0, 2166.0, 2503.0]
1             [2113.0, 6999.0, 2314.0, NaN,       NaN]
2             [2111.0, 6999.0, 2111.0, 2362.0, 2503.0]
3             [2100.0, 6999.0, 2362.0, 2113.0,    NaN]
4             [2111.0, 6999.0, 2111.0, 2503.0,    NaN]
Run Code Online (Sandbox Code Playgroud)

use*_*203 3

您可以创建一个新的 DataFrame 来填充。由于默认情况下使用这些值创建 DataFrame 会填充NaN缺失值,因此您可以聚合到list第一个轴以向列表添加必要的填充。

假设您的列名称是0

pd.DataFrame(df[0].values.tolist()).agg(list, 1)
Run Code Online (Sandbox Code Playgroud)

0    [2116.0, 6999.0, 2116.0, 2166.0, 2503.0]
1          [2113.0, 6999.0, 2314.0, nan, nan]
2    [2111.0, 6999.0, 2111.0, 2362.0, 2503.0]
3       [2100.0, 6999.0, 2362.0, 2113.0, nan]
4       [2111.0, 6999.0, 2111.0, 2503.0, nan]
Run Code Online (Sandbox Code Playgroud)

然而

通常不建议将列表存储在 DataFrame 中。为什么不将列表扩展到它们自己的列呢?这也会留下NaN填充:

pd.DataFrame(df[0].values.tolist())
Run Code Online (Sandbox Code Playgroud)

        0       1       2       3       4
0  2116.0  6999.0  2116.0  2166.0  2503.0
1  2113.0  6999.0  2314.0     NaN     NaN
2  2111.0  6999.0  2111.0  2362.0  2503.0
3  2100.0  6999.0  2362.0  2113.0     NaN
4  2111.0  6999.0  2111.0  2503.0     NaN
Run Code Online (Sandbox Code Playgroud)