如何在Pandas中将多列嵌套列表拆分为多列?
解决方案:拆分Pandas多列嵌套列表为多列
针对你有多个嵌套列表列的DataFrame,你可以通过批量处理每一列并拼接结果的方式实现需求,以下是两种可行方法:
方法一:循环遍历处理(直观易理解)
import pandas as pd # 假设你的原始DataFrame为dframe final_df = pd.DataFrame() # 遍历每一列,拆分后拼接 for col_name in dframe.columns: # 将当前列的列表转为新的DataFrame split_part = pd.DataFrame(dframe[col_name].tolist()) # 按列拼接至结果集 final_df = pd.concat([final_df, split_part], axis=1) # 可选:重置列名为连续数字(匹配你期望的输出格式) final_df.columns = list(range(final_df.shape[1]))
方法二:链式列表推导(更简洁)
如果追求代码简洁性,可以用列表推导式批量生成拆分后的子DataFrame,再一次性拼接:
import pandas as pd # 批量处理所有列并拼接 final_df = pd.concat( [pd.DataFrame(col.tolist()) for col in dframe.values.T], axis=1 ) # 重置列名 final_df.columns = list(range(final_df.shape[1]))
效果验证
执行上述代码后,你的DataFrame会被转换为期望的格式:
0 1 2 3 4 5 0 u 8.000000e+00 4.47e-01 a0 3.384351e-03 1.23e-03 1 u 8.000000e+00 4.47e-01 a0 3.384351e-03 1.23e-03 2 u 8.000000e+00 5.53e-01 a0 4.897271e-03 1.79e-03
关键逻辑说明
你之前尝试的方法只针对单列处理,而这里的核心是遍历所有列,对每一列执行tolist()转换为可拆分的结构,再通过pd.concat(axis=1)将所有拆分后的列横向拼接,最终得到合并后的结果。
内容的提问来源于stack exchange,提问作者aVral
相关产品推荐
相关产品推荐

