如何将pandas dataframe以索引加列名为键转换为键值对字典
pandas DataFrame转指定拼接键字典的实现方法
方法1:pandas原生API一行实现
这是最简便的写法,利用stack把DataFrame转为多级索引的Series,重命名索引后直接转字典:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame( {'T1': [5, 2, 10], 'T2': [1, 1.5, 12]}, index=['apple', 'pear', 'banana'] ) # 核心转换代码 result = df.stack().rename(lambda idx: f"{idx[0]}_{idx[1]}").to_dict()
方法2:纯Python字典推导式实现
如果你不想依赖pandas的多级索引操作,用嵌套字典推导也可以快速实现,可读性更强:
result = {f"{row_key}_{col_key}": value for row_key, row_dict in df.to_dict("index").items() for col_key, value in row_dict.items()}
输出验证
两种方法得到的结果完全符合需求:
print(result) # 输出: # {'apple_T1': 5, # 'apple_T2': 1.0, # 'pear_T1': 2, # 'pear_T2': 1.5, # 'banana_T1': 10, # 'banana_T2': 12.0}
补充说明
如果需要调整键的拼接规则,直接修改f-string中的拼接逻辑即可,比如把下划线替换为横杠、点号等分隔符。
内容的提问来源于stack exchange,提问作者Wen Yang
相关产品推荐
相关产品推荐

