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

如何将Pandas DataFrame数据合并至单一索引行?

合并多行单值DataFrame为一行

方法一:从现有多行DataFrame聚合

你的代码生成的DataFrame每行仅含一个有效值,其余为NaN,直接对每列取非空值即可合并为一行:

import pandas as pd

data = [{'TpoMoneda': 'UYU'}, {'MntNetoIvaTasaMin': '3825.44'}, {'IVATasaMin': '10.000'}, {'IVATasaBasica': '22.000'}, {'MntIVATasaMin': '382.54'}, {'MntTotal': '4207.98'}, {'MntTotRetenido': '133.90'}, {'CantLinDet': '2'}, {'RetencPercep': None}, {'RetencPercep': None}, {'MontoNF': '0.12'}, {'MntPagar': '4342.00'}]

df = pd.DataFrame.from_dict(data, orient='columns')
# 聚合为一行,max()会自动忽略NaN取有效值
merged_df = df.max().to_frame().T

# 或者用遍历列的方式,更直观
merged_df = pd.DataFrame({col: [df[col].dropna().iloc[0]] for col in df.columns})

方法二:直接重构原始数据(更高效)

既然原始数据是单个键值对的字典列表,没必要先生成多行DataFrame,直接合并所有字典再转成DataFrame更高效:

import pandas as pd

data = [{'TpoMoneda': 'UYU'}, {'MntNetoIvaTasaMin': '3825.44'}, {'IVATasaMin': '10.000'}, {'IVATasaBasica': '22.000'}, {'MntIVATasaMin': '382.54'}, {'MntTotal': '4207.98'}, {'MntTotRetenido': '133.90'}, {'CantLinDet': '2'}, {'RetencPercep': None}, {'RetencPercep': None}, {'MontoNF': '0.12'}, {'MntPagar': '4342.00'}]

# 合并所有字典,重复键会保留最后一个值
merged_dict = {}
for item in data:
    merged_dict.update(item)

# 转换为1行的DataFrame
df = pd.DataFrame([merged_dict])

两种方法最终都会得到1行11列的DataFrame,保留所有原始有效值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:46:03