Python Pandas转换特殊结构数组 调整DataFrame行与表头格式
实现方案
你只需要先对原始嵌套数组做扁平化处理,把每行的所有单键字典合并,再生成DataFrame即可,完整代码如下:
import pandas as pd # 你的原始数组 raw_data = [ ['fic10', {'bulle_naif': '55'}, {'bulle_bool': '52'}, {'bulle_opt': '39'}, {'selection': '45'}, {'insertion': '20'}, {'rapide': '60'}], ['fic100', {'bulle_naif': '5050'}, {'bulle_bool': '5050'}, {'bulle_opt': '4816'}, {'selection': '4950'}, {'insertion': '2221'}, {'rapide': '6697'}], ['fic1000', {'bulle_naif': '2623195'}, {'bulle_bool': '1789209'}, {'bulle_opt': '2618499'}, {'selection': '2620905'}, {'insertion': '1535788'}, {'rapide': '1323294'}], ['fic10000', {'bulle_naif': '4764881010'}, {'bulle_bool': '926117379'}, {'bulle_opt': '4764749559'}, {'selection': '4764783390'}, {'insertion': '900955079'}, {'rapide': '506697139'}] ] processed_data = [] for row in raw_data: # 取文件名作为第一列值 row_dict = {"file_name": row[0]} # 合并该行后续所有单键字典 for item in row[1:]: row_dict.update(item) processed_data.append(row_dict) # 生成目标格式DataFrame df = pd.DataFrame(processed_data) # 可选:将数值列转换为整数类型 num_cols = ['bulle_naif', 'bulle_bool', 'bulle_opt', 'selection', 'insertion', 'rapide'] df[num_cols] = df[num_cols].astype(int)
如果你已经生成了原始格式的DataFrame(每列存储字典),可以用以下代码直接转换:
# 假设原始df的第一列列名为file_name,后续6列存储字典 # 第一步:展开所有字典列 for col in df.columns[1:]: df = df.join(df[col].apply(pd.Series)) # 第二步:删除原来存储字典的列 df = df.drop(columns=df.columns[1:7])
内容的提问来源于stack exchange,提问作者Y0yor
相关产品推荐
相关产品推荐

