python中dict转dataframe的操作

本文介绍Python中使用dict和DataFrame进行数据处理的实用技巧,包括如何更新字典和将字典数据追加到DataFrame中,适用于数据分组和函数处理场景。

python处理数据时,经常使用的一个套路是按照某些变量分组,然后每组里做同样的函数处理,生成一些新的数据,最后组合成一些新的数据。

函数内部通常使用dict来保存新数据,最后组合成一个Dataframe。

本文总结以上两个主要的操作。

1. dict update

首先定义一个空的字典:result = {}

然后不断调用result.update({'f' : [value]})

需要注意的是value一定要使用list的格式,否则会报错。

 

2. 使用append追加dict到frame中

这一步骤里,可以使用append,直接追加到一个空的dataframe中

df = pd.DataFrame()
a={'红细胞': 3.31, '血红蛋白': 115, '红细胞压积': 38.5}
df = df.append(a, ignore_index=True)
a1={'血红蛋白': 125, '红细胞': 13.31, '红细胞压积': 18.5}
df = df.append(a1, ignore_index=True)
df

 

3. 结果

 

 

 

 

 

Python 中使用 `pandas`,可以非常方便地将字典(`dict`)换为 `DataFrame`。根据字典的结构不同,换方式略有差异。下面给出几种常见情况的完整示例和解释。 --- ### ✅ 1. 基本用法:字典键为列名,值为列表(最常见) ```python import pandas as pd # 字典:key 是列名,value 是数据列表 data = { 'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35], 'city': ['New York', 'Paris', 'Tokyo'] } # 换为 DataFrame df = pd.DataFrame(data) print(df) ``` #### 输出: ``` name age city 0 Alice 25 New York 1 Bob 30 Paris 2 Charlie 35 Tokyo ``` > ✅ 这是最标准的方式,每个键对应一列,列表长度必须相同。 --- ### ✅ 2. 字典值不是列表(标量)——需指定 index 或使用 from_dict 如果字典中的值是单个值(非列表),直接会报错: ```python data_scalar = { 'name': 'Alice', 'age': 25, 'city': 'New York' } # 方法一:包装成列表 df = pd.DataFrame([data_scalar]) # 注意中括号 print(df) ``` #### 输出: ``` name age city 0 Alice 25 New York ``` > 使用 `[data_scalar]` 将字典变成一个包含一行的列表。 --- ### ✅ 3. 字典以行为单位(嵌套字典)——使用 `pd.DataFrame.from_dict()` 有时你有一个按“行”组织的字典: ```python data_by_row = { 0: {'name': 'Alice', 'age': 25, 'city': 'New York'}, 1: {'name': 'Bob', 'age': 30, 'city': 'Paris'}, 2: {'name': 'Charlie', 'age': 35, 'city': 'Tokyo'} } # 指定 orient='index' 表示字典的键是索引 df = pd.DataFrame.from_dict(data_by_row, orient='index') print(df) ``` #### 输出: ``` name age city 0 Alice 25 New York 1 Bob 30 Paris 2 Charlie 35 Tokyo ``` - `orient='index'`:表示字典的外层键是行索引。 - 默认 `orient='columns'`,即列优先。 --- ### ✅ 4. 输出 DataFrame 到控制台或文件 除了打印,你还可以输出到各种格式: ```python # 打印 print(df) # 输出为 CSV 文件 df.to_csv('output.csv', index=False) # 输出为 JSON print(df.to_json(orient='records', indent=2)) # 输出为 Excel(需要 openpyxl) df.to_excel('output.xlsx', index=False) ``` --- ### ⚠️ 注意事项: - 所有列的列表长度必须一致,否则会报错:`ValueError: arrays must all be same length`。 - 如果数据不规则,考虑先补全或使用 `pd.json_normalize()` 处理嵌套结构。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值