如何使用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
相关产品推荐
相关产品推荐

