Pandas中求和生成的Series转DataFrame合并出错,如何修正?
问题原因及解决方法
错误根源
你出错的核心是对Series转置的理解有误:df_1.T转置后仍然是Series,并没有变成你预期的单行DataFrame。原df_1是索引为A、B,值为6、15,名字为Key Totals的Series,转置后结构本质没变,索引还是A、B,所以用concat合并时,pandas会将其与原DataFrame按列对齐,导致出现多余的列0和错误的索引行A、B。
正确解法
方法1:直接通过df.loc添加新行(最简洁)
直接把求和后的Series赋值给新的索引行,pandas会自动匹配列:
df.loc['Key Totals'] = df_1
方法2:将Series转为单行DataFrame后合并
如果坚持用concat,需要先把df_1转换成结构匹配的单行DataFrame:
# 将Series转为DataFrame并转置,确保是单行结构 df_2 = df_1.to_frame().T # 合并原DataFrame和新行 df = pd.concat([df, df_2])
最终结果
执行任意一种方法后,都会得到你期望的输出:
A B X 1.0 4.0 Y 2.0 5.0 Z 3.0 6.0 Key Totals 6.0 15.0
内容的提问来源于stack exchange,提问作者Sydney
相关产品推荐
相关产品推荐

