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

为何DataFrame的.loc[]返回形状不一致?如何输出DataFrame而非Series?

为什么loc[0,:]返回Series,而[[0]]返回DataFrame?

核心原因是pandas索引器的行为规则:

  • 当你用单个标量值(比如0)通过.loc索引单行时,pandas会自动降维,返回一维的Series对象。这是pandas的默认设计——单个行/列被视为一维数据,所以c.shape会是(17,),代表17个元素的一维序列。
  • 当你用列表包裹行标签(比如[0],也就是你写的[[0]],本质是选择行时传入列表),pandas会认为你要选择一个行集合(哪怕只有一行),因此会保留二维的DataFrame结构,返回形状为(1,17)的结果,这正是你需要的格式。

额外小技巧

如果你想强制把单行的Series转成DataFrame,也可以用c.to_frame().T,不过直接用列表索引的方式更简洁直接。

内容的提问来源于stack exchange,提问作者Sams Got the blues

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:55:28