在 Python 中,有许多类似于 R 的 tidyverse 的数据处理工具包,尽管它们没有完全整合在一个生态系统中,但它们可以组合使用,达到类似 tidyverse 的功能效果。
以下是 Python 中的一些主要库及其功能,和 tidyverse 的模块相对应:
tidyverse 的核心功能:dplyr(数据操作)tidyr(数据整理)tidyverse 的管道式操作。data.frame 类似,非常适合表格数据的操作。import pandas as pd
# 数据框
data = pd.DataFrame({'name': ['A', 'B', 'C'], 'value': [10, 20, 30]})
# 筛选和分组聚合
result = data[data['value'] > 15] # 筛选
result = data.groupby('name').agg({'value': 'sum'}) # 聚合%>%):Python 通过 df.pipe 方法,或借助 pandas-扩展包(如 dfply 或 plydata)可以实现类似 R 的管道操作。
# 类似于 R 的 tidyverse 管道操作
from dfply import *
result = (
data >>
mask(X.value > 15) >>
group_by(X.name) >>
summarize(total_value=X.value.sum())
)tidyverse 的核心功能:pandas,但更加高效。pandas 的 API。import polars as pl
# 创建数据
data = pl.DataFrame({'name': ['A', 'B', 'C'], 'value': [10, 20, 30]})
# 筛选和分组聚合
result = data.filter(pl.col('value') > 15).groupby('name').agg(pl.col('value').sum())
print(result)tidyverse 的功能:tidyr,用于数据整理。pandas,提供额外的清洗和操作方法,如列清理、拆分合并等。import pandas as pd
import janitor
data = pd.DataFrame({'name': ['A', 'B', 'C'], 'value': [10, 20, 30]})
# 清理列名
cleaned_data = data.clean_names()
# 数据整理
cleaned_data = cleaned_data.separate('name', into=['first_letter'], sep='_')tidyverse 的功能:ggplot2,用于数据可视化。matplotlib,支持与 pandas 和 numpy 数据集的无缝对接。import seaborn as sns
import pandas as pd
data = pd.DataFrame({'name': ['A', 'B', 'C'], 'value': [10, 20, 30]})
sns.barplot(data=data, x='name', y='value')tidyverse 的功能:dplyr 的分布式操作。pandas 类似的 API。import dask.dataframe as dd
data = dd.from_pandas(pd.DataFrame({'name': ['A', 'B', 'C'], 'value': [10, 20, 30]}), npartitions=2)
result = data[data['value'] > 15].compute()
print(result)tidyverse 的功能:ggplot2,实现语法一致的可视化工具。ggplot2 一致的语法,适合习惯 R 的用户。from plotnine import ggplot, aes, geom_bar
import pandas as pd
data = pd.DataFrame({'name': ['A', 'B', 'C'], 'value': [10, 20, 30]})
p = ggplot(data, aes(x='name', y='value')) + geom_bar(stat='identity')
print(p)tidyverse 的功能:dplyr 和 pandas,但支持分布式计算。pandas 类似的 API,且可扩展到多节点计算。可以将上述工具组合使用来构建类似于 R 的 tidyverse 工作流。例如:
pandas 或 polars 进行数据操作。seaborn 或 plotnine 进行可视化。dask 或 pyspark。pyjanitor 做数据清洗。虽然 Python 中没有完全整合的类似 tidyverse 的生态,但可以通过以下工具组合实现:
pandas、polars、pyjanitorseaborn、plotninedask、pyspark.pandasdfply如果你对特定的功能有需求,可以进一步选择和组合这些工具!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。