如何将含嵌套列表的Pandas Series转换为指定结构的DataFrame?
将嵌套列表结构的Pandas Series转换为指定DataFrame格式
问题场景
给定如下嵌套列表结构的Pandas Series:
import pandas as pd s = pd.Series([ [[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]], ], index=[10,20,30])
该Series输出为:
10 [[1, 2], [3, 4], [5, 6]] 20 [[7, 8], [9, 10], [11, 12]] 30 [[13, 14], [15, 16], [17, 18]] dtype: object
需要将其转换为如下结构的DataFrame:
col1 col2 col3 10 1 3 5 10 2 4 6 20 7 9 11 20 8 10 12 30 13 15 17 30 14 16 18
解决方案
可以通过遍历Series元素并构建临时DataFrame的方式实现转换,代码如下:
import pandas as pd s = pd.Series([ [[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]], ], index=[10,20,30]) # 初始化空列表存储临时DataFrame temp_dfs = [] # 遍历Series的每个索引和对应值 for idx, nested_list in s.items(): # 将嵌套列表转为DataFrame并转置,得到目标行结构 df_temp = pd.DataFrame(nested_list).T # 设置临时DataFrame的索引为当前Series索引,重复对应次数 df_temp.index = [idx] * len(df_temp) temp_dfs.append(df_temp) # 合并所有临时DataFrame result_df = pd.concat(temp_dfs) # 重命名列名 result_df.columns = [f'col{i+1}' for i in result_df.columns] print(result_df)
运行代码后即可得到目标格式的DataFrame。
内容的提问来源于stack exchange,提问作者Joseph K
相关产品推荐
相关产品推荐

