You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas去除NaN并将所有值合并至同一行?

解决Pandas将多字典列表转换为单行DataFrame的问题

你可以通过以下几种方法将列表中的多个单键值对字典合并为单行DataFrame,避免NaN的出现:

方法1:合并字典后再转换(最直接高效)

先把所有字典合并成一个完整的字典,再转换为DataFrame:

import pandas as pd
from collections import ChainMap

data = [{'cisco': 15}, {'developer': 15}, {'root': 15}]
# 合并所有字典
merged_dict = dict(ChainMap(*data))
# 转换为单行DataFrame
df = pd.DataFrame([merged_dict])

方法2:填充NaN后提取单行

利用填充方法补全NaN,再提取第一行:

import pandas as pd

data = [{'cisco': 15}, {'developer': 15}, {'root': 15}]
df = pd.DataFrame(data).ffill().bfill().iloc[[0]]

ffill()会向前填充缺失值,bfill()向后填充,确保所有列都有值后,取第一行即可。

方法3:通过Series合并

将每个字典转为Series后横向合并,再处理缺失值:

import pandas as pd

data = [{'cisco': 15}, {'developer': 15}, {'root': 15}]
# 每个字典转Series后横向合并
combined = pd.concat([pd.Series(d) for d in data], axis=1).T
# 填充缺失值并取第一行
df = combined.fillna(method='ffill').iloc[[0]]

最终输出

执行以上任意方法后,你会得到期望的单行结果:

cisco  developer  root
0     15         15     15

内容的提问来源于stack exchange,提问作者chun xu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:27:20