如何将字典转换为指定格式的DataFrame?附代码示例
解决方法
你当前得到的是宽格式的DataFrame,要转换成目标的长格式,有两种简单的实现方式:
方法一:基于现有代码修改
你已经通过orient='index'生成了宽表,接下来可以用stack()将列索引转为行维度,再整理列名即可:
import pandas as pd sample = {'alphabet': ['A', 'B', 'C'], 'number': ['1', '2', '3']} # 你原有的代码 df2 = pd.DataFrame.from_dict(data=sample, orient='index') df2.reset_index(level=0, inplace=True) # 新增转换步骤 df2 = df2.set_index('index').stack().reset_index() df2.columns = ['Column A', 'temp', 'Column B'] df2 = df2.drop('temp', axis=1)
方法二:直接构造长格式数据
跳过宽表生成环节,直接遍历字典的键值对,构造符合要求的行数据:
import pandas as pd sample = {'alphabet': ['A', 'B', 'C'], 'number': ['1', '2', '3']} # 生成每行数据的列表 rows = [] for col_a_val, col_b_vals in sample.items(): for val in col_b_vals: rows.append({'Column A': col_a_val, 'Column B': val}) # 转为目标DataFrame df = pd.DataFrame(rows)
两种方法最终都会生成你期望的格式:
| Column A | Column B |
|---|---|
| alphabet | A |
| alphabet | B |
| alphabet | C |
| number | 1 |
| number | 2 |
| number | 3 |
内容的提问来源于stack exchange,提问作者Rachit Chourasia
相关产品推荐
相关产品推荐

