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

使用Pandas将DataFrame首列转换为Series时出现AttributeError错误的解决方法与原因解析

解决DataFrame转Series时的ix属性错误

嘿,这个问题很常见!你碰到的AttributeError是因为ix这个索引器早就被pandas弃用啦,具体原因和解决办法如下:

错误原因

ix是pandas早期版本里的混合索引工具,支持同时按位置和标签索引数据,但在pandas 1.0.0及之后的正式版本中,它已经被完全移除了。现在你用新版本的pandas运行这段代码,自然会找不到这个属性,抛出错误。

两种靠谱的解决办法

方法1:用iloc按位置索引

iloc是pandas专门用来按位置取数据的索引器,用法和你原来的ix几乎一样,直接替换就行:

import pandas as pd

dict1 = {'col1': [1, 2, 3, 4, 7, 11], 'col2': [4, 5, 6, 9, 5, 0], 'col3': [7, 5, 8, 12, 1,11] }
df1 = pd.DataFrame(data=dict1)
series5 = df1.iloc[:, 0]  # :表示取所有行,0表示取第1列(位置从0开始)

方法2:直接通过列名获取(更推荐)

如果你明确知道第一列的列名(这里是col1),直接用列名索引会更直观,而且就算之后DataFrame的列顺序变了,也不会取错数据:

import pandas as pd

dict1 = {'col1': [1, 2, 3, 4, 7, 11], 'col2': [4, 5, 6, 9, 5, 0], 'col3': [7, 5, 8, 12, 1,11] }
df1 = pd.DataFrame(data=dict1)
series5 = df1['col1']  # 直接取col1列,自动转为Series类型

如果不确定列名,也可以通过df1.columns[0]获取第一列的列名,再索引:series5 = df1[df1.columns[0]],效果和iloc[:,0]一致,但可读性稍弱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 04:32:27