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

如何将多列Pandas DataFrame指定位置列转换为Series?

解决Pandas按位置选择列并转换为Series的问题

嘿,我来帮你搞定这个问题!从多列DataFrame里按位置挑出一列转成Series其实很简单,大概率是你之前用了不对的索引方式导致失败,下面给你几种靠谱的方法,附带例子说明:

方法1:使用iloc(最推荐的按位置索引方式)

iloc是Pandas专门用于按整数位置索引的工具,选列的语法是df.iloc[:, 列位置索引],注意列索引从0开始。

举个实际例子:

import pandas as pd

# 创建一个测试用的多列DataFrame
data = {'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]}
df = pd.DataFrame(data)

# 按位置选择第0列(也就是列'A'),并转成Series
selected_series = df.iloc[:, 0]

# 验证结果类型
print(type(selected_series))  # 输出 <class 'pandas.core.series.Series'>
print(selected_series)

运行后会得到标准的Series,输出如下:

0    1
1    2
2    3
Name: A, dtype: int64

方法2:使用take+squeeze组合

如果你只想提取某一列的位置,也可以用take指定列方向,再用squeeze()把单列DataFrame压缩成Series:

selected_series = df.take([0], axis=1).squeeze()

你可能踩过的坑

  • 要是之前尝试df[:, 0]这种写法肯定会报错——Pandas的[]操作符不支持这种二维切片,它主要用于按列名或行切片,必须用iloc完成按位置的列选择。
  • 如果用df.iloc[:, [0]](嵌套方括号),得到的会是单列DataFrame而非Series,这时候加个.squeeze()就能转成Series了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:27:54