Pandas中df['column_name']与df[['column_name']]的工作原理解析
Pandas中df['列名']与df[['列名']]的返回逻辑解析
核心逻辑拆解
- 用单个字符串作为索引(
df['Yil']):pandas判定你要提取单列一维数据,返回Series结构——它只有索引和对应值,没有列表头,本质是带索引的一维数组。 - 用包含单个字符串的列表作为索引(
df[['Yil']]):pandas判定你要提取一组列(哪怕仅一列),返回DataFrame结构——这是二维表格,会保留列名表头,符合多列选择的返回规则。
你的运行结果验证
df['Yil']的输出(Series):
df['Yil']= bir 2021 ikki 2020 19 2019 18 2018 17 2017 16 2016 15 2015 10 2010
df[['Yil']]的输出(DataFrame):
df[['Yil']]= Yil bir 2021 ikki 2020 19 2019 18 2018 17 2017 16 2016 15 2015 10 2010 Name: Yil, dtype: int64
底层实现逻辑
pandas的方括号索引(对应__getitem__魔法方法)做了参数类型分支:
- 若传入参数是字符串,直接返回该列的
Series; - 若传入参数是列表(无论长度),则返回包含这些列的
DataFrame——因为列表语义上代表“多选列”,哪怕只选一列,也会用二维表格容器返回。
内容的提问来源于stack exchange,提问作者Lazizbek Sadullaev
相关产品推荐
相关产品推荐

