自学内容网 自学内容网

Polars 的LazyFrame

LazyFrame是Polars的一个核心概念,它代表了一种延迟执行的数据框架。这意味着在创建LazyFrame时,并不会立即执行操作,而是在实际需要结果时才进行计算。这种方式对于优化查询和执行大型数据集操作非常有用。

LazyFrame的内容包括:
  • 聚合 (Aggregation)
    • agg(): 对LazyFrame中的列进行聚合操作。
    • groupby(): 对数据进行分组,然后可以应用聚合操作。
  • 属性 (Attributes)
    • columns: 返回LazyFrame中的列名列表。
    • dtypes: 返回LazyFrame中每列的数据类型。
    • shape: 返回LazyFrame的形状(行数,列数)。
  • 描述性 (Descriptive)
    • describe_plan(): 返回LazyFrame的执行计划描述。
    • explain(): 返回LazyFrame的执行计划。
  • 分组 (Grouping)
    • groupby(): 对数据进行分组,通常与聚合操作一起使用。
  • 选择 (Selection)
    • select(): 选择特定的列。
    • filter(): 根据条件过滤行。
  • 操作 (Operations)
    • collect(): 执行延迟的操作并返回一个DataFrame。
    • limit(): 限制返回的行数。
    • sort(): 对LazyFrame进行排序。
  • Miscellaneous
    • join(): 将两个LazyFrame连接在一起。
    • with_column(): 向LazyFrame添加新列。
使用例子

以下是一些使用LazyFrame的基本例子:

import polars as pl
# 创建一个LazyFrame
df = pl.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35],
    'salary': [50000, 60000, 70000]
})
lazy_df = df.lazy()
# 使用groupby和agg进行聚合
result = lazy_df.groupby('name').agg([
    pl.col('age').sum(),
    pl.col('salary').mean()
]).collect()
# 选择特定的列
selected_columns = lazy_df.select(['name', 'salary']).collect()
# 过滤行
filtered_rows = lazy_df.filter(pl.col('age') > 30).collect()
# 连接两个LazyFrame
df2 = pl.DataFrame({
    'name': ['Alice', 'Dave'],
    'department': ['HR', 'IT']
})
lazy_df2 = df2.lazy()
joined_df = lazy_df.join(lazy_df2, on='name', how='left').collect()
# 输出结果
print(result)
print(selected_columns)
print(filtered_rows)
print(joined_df)

这些例子展示了如何使用LazyFrame进行基本的数据操作,如分组、选择、过滤和连接。通过延迟执行,Polars可以更高效地处理大型数据集,并且可以优化查询计划以获得更好的性能。在实际应用中,LazyFrame的这些操作可以与DataFrame的操作无缝结合,为数据处理和分析提供强大的工具。


原文地址:https://blog.csdn.net/weixin_32759777/article/details/142724613

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!