使用select从Polars DataFrame选单列会得到DataFrame吗?如何获取Series?
Polars中select单列返回类型及获取Series的方法
1. select单列的返回结果类型
是的,用select()方法选取单列时,返回的仍然是DataFrame——从你提供的输出能看到shape: (3, 1),说明这是一个3行1列的DataFrame,而非Series。
2. 获取Series类型结果的几种常用方法
方法一:直接索引列名
用类似字典的索引方式直接取列,返回的就是Series:
import polars as pl df = pl.DataFrame( { "A": [1, 2, 3], "B": [6, 7, 8], "C": ["a", "b", "c"], } ) series_a = df["A"] print(series_a)
输出:
shape: (3,) Series: 'A' [i64] [ 1 2 3 ]
方法二:调用get_column()方法
使用DataFrame的get_column()方法传入列名,直接获取Series:
series_a = df.get_column("A") print(series_a)
输出和方法一完全一致。
方法三:将单列DataFrame转为Series
如果已经通过select()得到了单列DataFrame,调用to_series()方法就能转换为Series:
single_col_df = df.select("A") series_a = single_col_df.to_series() print(series_a)
输出同上。
方法四:结合表达式语法(适合复杂操作场景)
如果需要先对列做表达式处理(比如过滤、转换)再获取Series,可以这么写:
series_a = df.select(pl.col("A")).to_series()
这种方式在需要对列做预处理时更灵活。
内容的提问来源于stack exchange,提问作者Talha Tayyab
相关产品推荐
相关产品推荐

