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

为何转置无效?无法将df.loc['Y']行合并至目标DataFrame

问题分析与解决方案

错误原因

你用df.loc['Y']提取的是Series对象(一维结构),而非DataFrame。直接将Series与df1执行pd.concat(axis=0)时,程序会把Series的索引(即原df的列名A、B)当作新行的索引,Series的值则被存入默认生成的0列,这就导致了索引和列名混乱的问题。另外transpose()对Series无效,因为它本身就是一维数据,转置后结构不会改变。

解决方法

只需把提取的行转换成保留原索引和列名的DataFrame即可,有两种简单方式:

方式1:将Series转置为单行DataFrame

# 提取行并转换为DataFrame
row = df.loc['Y'].to_frame().T
# 合并两个DataFrame
result = pd.concat([df1, row], axis=0)

to_frame()先把Series转为以原行索引(Y)为列名的DataFrame,再用.T转置,得到以Y为行索引、A/B为列的单行DataFrame,concat时就能正确匹配结构。

方式2:直接提取为DataFrame

# 用双层方括号直接提取单行DataFrame
row = df.loc[['Y']]
# 合并
result = pd.concat([df1, row], axis=0)

双层方括号的索引方式会直接返回DataFrame,保留原有的行索引Y和列名A、B,无需额外转换,更简洁。

最终效果

合并后的结果会新增一行索引为Y的记录:列A值为2,列B值为5,原df1的M、N列在Y行位置显示NaN(因原行无对应数据),完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:11:04