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)
您可以创建一个新的 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)