如何用Pandas将多字典列表转为单行DataFrame并合并含NaN的行?
解决方法
这里有几种简单的方式实现你的需求:
方法1:合并字典后转DataFrame
先把列表里的所有字典合并成一个完整的字典,再用这个字典创建单行DataFrame,这是最直接的方式:
import pandas as pd data = [{"A":1}, {"B":2}, {"C":3}] # 合并所有字典 merged_data = {} for d in data: merged_data.update(d) # 创建单行DataFrame df = pd.DataFrame([merged_data]) print(df.to_string(index=False))
输出:
A B C 1 2 3
方法2:利用pandas的填充+取行
针对你已经生成的多行带NaN的DataFrame,可以用前向填充(ffill)把NaN值补上,然后取最后一行:
import pandas as pd data = [{"A":1}, {"B":2}, {"C":3}] df = pd.DataFrame(data) # 填充NaN并取最后一行转为单行DataFrame df = df.ffill().iloc[-1:] print(df.to_string(index=False))
输出和上面一致。
方法3:用Series拼接转置
把每个字典转成Series,拼接后转置成单行DataFrame:
import pandas as pd data = [{"A":1}, {"B":2}, {"C":3}] df = pd.concat([pd.Series(d) for d in data]).to_frame().T print(df.to_string(index=False))
同样能得到你要的结果。
内容的提问来源于stack exchange,提问作者Bera
相关产品推荐
相关产品推荐

