如何展开Pandas DataFrame嵌套列表并转为多列结构?
嵌套列表展开为多列DataFrame的实现方法
核心操作步骤
- 提取内层一维列表:原数据每行是双层嵌套列表(
[[...]]),先取出内层的一维列表 - 转换为多列结构:将一维列表批量转换为新的DataFrame,每个列表元素对应一列
- (可选)重命名列名:给列设置更直观的命名格式
代码实现
import pandas as pd # 假设你的原始DataFrame名为df,存储嵌套列表的列名为'data' # 第一步:提取内层的一维列表 df['flattened_data'] = df['data'].str[0] # 第二步:将一维列表转换为多列DataFrame expanded_df = pd.DataFrame(df['flattened_data'].tolist()) # 第三步(可选):给列重命名,比如用col_0、col_1...的格式 expanded_df.columns = [f'col_{idx}' for idx in expanded_df.columns]
示例验证
用模拟数据测试整个流程:
# 模拟原始数据 sample_data = { 'data': [ [[-127, -162, -197]], [[128, 157, 189, 226]], [[56, 73, 85]], [[519, 619, 723, 827, 914]], [[-188, -239, -274]], [[-266, -316, -367, -407]], [[21, 22, 24, 26, 28]] ] } df = pd.DataFrame(sample_data) # 执行展开操作 df['flattened_data'] = df['data'].str[0] expanded_df = pd.DataFrame(df['flattened_data'].tolist()) expanded_df.columns = [f'col_{idx}' for idx in expanded_df.columns] print(expanded_df)
输出结果:
col_0 col_1 col_2 col_3 col_4 0 -127 -162 -197 NaN NaN 1 128 157 189 226 NaN 2 56 73 85 NaN NaN 3 519 619 723 827 914 4 -188 -239 -274 NaN NaN 5 -266 -316 -367 -407 NaN 6 21 22 24 26 28
内容的提问来源于stack exchange,提问作者jasmine
相关产品推荐
相关产品推荐

