再见 Pandas,又一数据处理神器!
转自:coggle
cuDF介绍
GitHub:https://github.com/rapidsai/cudf
Documentation:https://docs.rapids.ai/api/cudf/stable
相关框架介绍
dask_cudf.read_csv(...)
时,集群的GPU通过调用cudf.read_csv()
来执行解析CSV文件的工作。这使得在GPU上利用cuDF的高性能数据处理能力,从而加速大规模数据处理任务。支持的操作:
数据类型:
缺失值:
迭代:
结果排序:
sort=True
或在尝试匹配Pandas行为时启用mode.pandas_compatible
选项。浮点运算:
列名:
没有真正的“object”数据类型:
.apply()函数限制:
何时使用cuDF和Dask-cuDF
cuDF:
当您的工作流在单个GPU上足够快,或者您的数据在单个GPU的内存中轻松容纳时,您会希望使用cuDF。
当数据量不大,可以在单个GPU内存中处理时,cuDF提供了对单个GPU上高性能数据操作的支持。
Dask-cuDF:
当您希望在多个GPU上分布您的工作流程时,或者您的数据量超过了单个GPU内存的容量,或者希望同时分析许多文件中分布的数据时,您会希望使用Dask-cuDF。
Dask-cuDF允许您在分布式GPU环境中进行高性能的数据处理,特别是当数据集太大,无法容纳在单个GPU内存中时。
cuDF代码案例
import os
import pandas as pd
import cudf
# Creating a cudf.Series
s = cudf.Series([1, 2, 3, None, 4])
# Creating a cudf.DataFrame
df = cudf.DataFrame(
{
"a": list(range(20)),
"b": list(reversed(range(20))),
"c": list(range(20)),
}
)
# read data directly into a dask_cudf.DataFrame with read_csv
pdf = pd.DataFrame({"a": [0, 1, 2, 3], "b": [0.1, 0.2, None, 0.3]})
gdf = cudf.DataFrame.from_pandas(pdf)
gdf
# Viewing the top rows of a GPU dataframe.
ddf.head(2)
# Sorting by values.
df.sort_values(by="b")
# Selecting a single column
df["a"]
# Selecting rows from index 2 to index 5 from columns ‘a’ and ‘b’.
df.loc[2:5, ["a", "b"]]
# Selecting via integers and integer slices, like numpy/pandas.
df.iloc[0:3, 0:2]
# Selecting rows in a DataFrame or Series by direct Boolean indexing.
df[df.b > 15]
# Grouping and then applying the sum function to the grouped data.
df.groupby("agg_col1").agg({"a": "max", "b": "mean", "c": "sum"})
1、GitHub.com跑了1200多台MySQL主机,如何无缝升级到8.0?