Pandas 兼容性说明#

Pandas 兼容性说明

pandas.DataFrame.transpose(), pandas.DataFrame.T

不支持复制,因为默认且唯一的行为是 copy=True

[来源]

Pandas 兼容性说明

pandas.DataFrame.agg()

  • 不支持: axis, *args, **kwargs

[来源]

Pandas 兼容性说明

pandas.DataFrame.all(), pandas.Series.all()

目前不支持的参数是axisbool_onlylevel

[来源]

Pandas 兼容性说明

pandas.DataFrame.any(), pandas.Series.any()

目前不支持的参数是axisbool_onlylevel

[来源]

Pandas 兼容性说明

pandas.DataFrame.count()

目前不支持的参数是axisnumeric_only

[来源]

Pandas 兼容性说明

pandas.DataFrame.diff()

Diff 目前仅支持数值类型的列。

[来源]

Pandas 兼容性说明

pandas.DataFrame.empty, pandas.Series.empty

如果DataFrame/Series仅包含null值,它仍然不被视为空。请参见上面的示例。

[来源]

Pandas 兼容性说明

pandas.DataFrame.eval()

  • 不支持额外的 kwargs。

  • 位运算和逻辑运算符不依赖于数据类型。 具体来说,& 必须用于整数上的位运算, 而不是 and,后者专门用于布尔值之间的逻辑与运算。

  • 目前仅支持数值类型。

  • 操作符通常不会自动进行类型转换。用户有责任在评估函数之前将列转换为合适的类型。

  • 不支持对同一名称进行多次赋值(即一系列赋值语句,其中后续语句依赖于先前语句的输出)。

[来源]

Pandas 兼容性说明

pandas.DataFrame.ewm()

参数 min_periods, ignore_na, axis, 和 times 尚未被支持。行为仅针对以有效(非空)元素开始的数据定义。

目前,仅支持mean方法。

[来源]

Pandas 兼容性说明

pandas.DataFrame.from_arrow

此方法在pandas中不存在,但它类似于 pyarrow.Table.to_pandas() 对于PyArrow Tables的工作方式,即 它不支持自动设置索引列。

[来源]

Pandas 兼容性说明

pandas.DataFrame.interleave_columns

此方法在pandas中不存在,但可以运行 为 pd.Series(np.vstack(df.to_numpy()).reshape((-1,)))

[来源]

Pandas 兼容性说明

pandas.DataFrame.join()

  • other 目前必须是一个单一的 DataFrame。

  • on 由于缺乏多索引支持,目前还不支持。

[来源]

Pandas 兼容性说明

pandas.DataFrame.max(), pandas.Series.max()

目前不支持的参数是levelnumeric_only

[来源]

Pandas 兼容性说明

pandas.DataFrame.merge()

在cuDF中合并DataFrames会导致行顺序不确定。

[source]

Pandas 兼容性说明

pandas.DataFrame.min(), pandas.Series.min()

目前不支持的参数是levelnumeric_only

[来源]

Pandas 兼容性说明

pandas.DataFrame.transpose()

axis 参数目前不支持。

[来源]

Pandas 兼容性说明

pandas.DataFrame.nlargest()

  • columns中仅支持单列

[来源]

Pandas 兼容性说明

pandas.DataFrame.nsmallest()

  • columns中仅支持单列

[来源]

Pandas 兼容性说明

pandas.DataFrame.quantile()

与Pandas的一个显著区别是,当DataFrame是非数值类型时,Pandas期望结果是一个Series。而cuDF将返回一个DataFrame,因为它不支持Series中的混合类型。

[来源]

Pandas 兼容性说明

pandas.DataFrame.query()

与pandas的一个区别是,query目前仅支持数字、日期时间、时间差或布尔数据类型。

[来源]

Pandas 兼容性说明

pandas.DataFrame.reindex()

注意:与Pandas的一个区别是,NA用于不匹配的行,而不是NaN。这的一个副作用是,列http_status在cuDF中保留整数类型,而在Pandas中则被转换为浮点数。

[来源]

Pandas 兼容性说明

pandas.DataFrame.rename()

  • 不支持:level

重命名不会覆盖列名。如果传递了包含重复项的列表,列名将附加一个数字。

[来源]

Pandas 兼容性说明

pandas.DataFrame.replace(), pandas.Series.replace()

目前不支持的参数有:limit, regex, method

[来源]

Pandas 兼容性说明

pandas.DataFrame.resample(), pandas.Series.resample()

请注意,结果中的索引(或使用‘on=’时的‘on’列)的dtype将是最接近重采样频率的频率类型。例如,如果从纳秒重采样到毫秒,索引的dtype将为‘datetime64[ms]’。

[来源]

Pandas 兼容性说明

pandas.DataFrame.sample(), pandas.Series.sample()

当从axis=0/'index'进行采样时,random_state可以是 numpy随机状态(numpy.random.RandomState) 或cupy随机状态(cupy.random.RandomState)。当使用numpy 随机状态时,输出保证与相应的pandas方法调用匹配,但生成样本 可能较慢。如果不需要精确的pandas等价性,使用 cupy随机状态将获得更好的性能, 特别是在采样大量 项目时。建议使用与随机状态匹配的ndarray类型 用于weights数组。

[来源]

Pandas 兼容性说明

pandas.DataFrame.skew(), pandas.Series.skew()

目前不支持axis参数。

[来源]

Pandas 兼容性说明

pandas.DataFrame.sort_index(), pandas.Series.sort_index()

  • 不支持:kind, sort_remaining=False

[来源]

Pandas 兼容性说明

pandas.DataFrame.sort_values(), pandas.Series.sort_values()

  • 仅支持 axis='index'。

  • 不支持:inplace, kind

[来源]

Pandas 兼容性说明

pandas.DataFrame.transpose(), pandas.DataFrame.T

不支持复制,因为默认且唯一的行为是 copy=True

[来源]

Pandas 兼容性说明

pandas.DataFrame.truncate(), pandas.Series.truncate()

copy 参数仅用于API兼容性,但不支持 copy=False。此方法始终生成一个副本。

[来源]

Pandas 兼容性说明

pandas.DataFrame.where(), pandas.Series.where()

请注意,where 将缺失值视为假值, 这与 pandas 对可空数据的处理方式一致:

>>> gsr = cudf.Series([1, 2, 3])
>>> gsr.where([True, False, cudf.NA])
0       1
1    <NA>
2    <NA>
dtype: int64
>>> gsr.where([True, False, False])
0       1
1    <NA>
2    <NA>
dtype: int64

[来源]

Pandas 兼容性说明

pandas.DataFrame.all(), pandas.Series.all()

目前不支持的参数是axisbool_onlylevel

[source]

Pandas 兼容性说明

pandas.DataFrame.any(), pandas.Series.any()

目前不支持的参数是axisbool_onlylevel

[来源]

Pandas 兼容性说明

pandas.DataFrame.max(), pandas.Series.max()

目前不支持的参数是levelnumeric_only

[来源]

Pandas 兼容性说明

pandas.DataFrame.min(), pandas.Series.min()

目前不支持的参数是levelnumeric_only

[source]

Pandas 兼容性说明

pandas.DataFrame.where(), pandas.Series.where()

请注意,where 将缺失值视为假值, 这与 pandas 对可空数据的处理方式一致:

>>> gsr = cudf.Series([1, 2, 3])
>>> gsr.where([True, False, cudf.NA])
0       1
1    <NA>
2    <NA>
dtype: int64
>>> gsr.where([True, False, False])
0       1
1    <NA>
2    <NA>
dtype: int64

[source]

Pandas 兼容性说明

pandas.DataFrame.all(), pandas.Series.all()

目前不支持的参数是axisbool_onlylevel

[来源]

Pandas 兼容性说明

pandas.DataFrame.any(), pandas.Series.any()

目前不支持的参数是axisbool_onlylevel

[来源]

Pandas 兼容性说明

pandas.Series.count()

目前不支持的参数是level

[来源]

Pandas 兼容性说明

pandas.Series.cov()

min_periods 参数尚不支持。

[来源]

Pandas 兼容性说明

pandas.DataFrame.empty, pandas.Series.empty

如果DataFrame/Series仅包含null值,它仍然不被视为空。请参见上面的示例。

[来源]

Pandas 兼容性说明

pandas.DataFrame.ewm()

参数 min_periods, ignore_na, axis, 和 times 尚未被支持。行为仅针对以有效(非空)元素开始的数据定义。

目前,仅支持mean方法。

[来源]

Pandas 兼容性说明

pandas.Series.map()

请注意,map 目前仅支持固定宽度的数字类型函数。

[来源]

Pandas 兼容性说明

pandas.DataFrame.max(), pandas.Series.max()

目前不支持的参数是levelnumeric_only

[来源]

Pandas 兼容性说明

pandas.DataFrame.min(), pandas.Series.min()

目前不支持的参数是levelnumeric_only

[来源]

Pandas 兼容性说明

pandas.Series.reindex()

注意:与Pandas的一个区别是,NA用于不匹配的行,而不是NaN。这的一个副作用是,在cuDF中,序列保留了整数数据类型,而在Pandas中则被转换为浮点数。

[source]

Pandas 兼容性说明

pandas.Series.rename()

  • 仅支持标量值用于更改名称属性

[来源]

Pandas 兼容性说明

pandas.DataFrame.replace(), pandas.Series.replace()

目前不支持的参数有:limit, regex, method

[source]

Pandas 兼容性说明

pandas.DataFrame.resample(), pandas.Series.resample()

请注意,结果中的索引(或使用‘on=’时的‘on’列)的dtype将是最接近重采样频率的频率类型。例如,如果从纳秒重采样到毫秒,索引的dtype将为‘datetime64[ms]’。

[来源]

Pandas 兼容性说明

pandas.DataFrame.sample(), pandas.Series.sample()

当从axis=0/'index'进行采样时,random_state可以是 numpy随机状态(numpy.random.RandomState) 或cupy随机状态(cupy.random.RandomState)。当使用numpy 随机状态时,输出保证与相应的pandas方法调用匹配,但生成样本 可能较慢。如果不需要精确的pandas等价性,使用 cupy随机状态将获得更好的性能, 特别是在采样大量 项目时。建议使用与随机状态匹配的ndarray类型 用于weights数组。

[来源]

Pandas 兼容性说明

pandas.DataFrame.skew(), pandas.Series.skew()

目前不支持axis参数。

[来源]

Pandas 兼容性说明

pandas.DataFrame.sort_index(), pandas.Series.sort_index()

  • 不支持:kind, sort_remaining=False

[来源]

Pandas 兼容性说明

pandas.Series.sort_values()

  • 仅支持 axis='index'。

  • 目前不支持inplace和kind参数

[source]

Pandas 兼容性说明

pandas.DataFrame.truncate(), pandas.Series.truncate()

copy 参数仅用于API兼容性,但不支持 copy=False。此方法始终生成一个副本。

[来源]

Pandas 兼容性说明

pandas.DataFrame.where(), pandas.Series.where()

请注意,where 将缺失值视为假值, 这与 pandas 对可空数据的处理方式一致:

>>> gsr = cudf.Series([1, 2, 3])
>>> gsr.where([True, False, cudf.NA])
0       1
1    <NA>
2    <NA>
dtype: int64
>>> gsr.where([True, False, False])
0       1
1    <NA>
2    <NA>
dtype: int64

[来源]

Pandas 兼容性说明

pandas.Series.list.sort_values

这个方法在pandas中不存在,但可以这样运行:

>>> import pandas as pd
>>> s = pd.Series([[3, 2, 1], [2, 4, 3]])
>>> print(s.apply(sorted))
0    [1, 2, 3]
1    [2, 3, 4]
dtype: object

[来源]

Pandas 兼容性说明

pandas.Series.str.contains()

参数 casena 目前还不支持,如果设置了默认值以外的任何值,将会引发 NotImplementedError。 参数 flags 目前仅支持 re.DOTALL 和 re.MULTILINE。

[来源]

Pandas 兼容性说明

pandas.Series.str.count()

  • flags 参数目前仅支持 re.DOTALL 和 re.MULTILINE。

  • 在传递 pat 时,某些字符需要进行转义。例如,'$' 在正则表达式中具有特殊含义,因此在查找此字面字符时必须进行转义。

[来源]

Pandas 兼容性说明

pandas.Series.str.endswith()

na 参数尚不支持,因为 cudf 使用原生字符串而不是 Python 对象。

[来源]

Pandas 兼容性说明

pandas.Series.str.extract()

flags 参数目前仅支持 re.DOTALL 和 re.MULTILINE。

[来源]

Pandas 兼容性说明

pandas.Series.str.findall()

flags 参数目前仅支持 re.DOTALL 和 re.MULTILINE。

[来源]

Pandas 兼容性说明

pandas.Series.str.match()

参数 casena 目前不支持。 flags 参数目前仅支持 re.DOTALL 和 re.MULTILINE。

[来源]

Pandas 兼容性说明

pandas.Series.str.partition()

参数 expand 尚未支持,如果设置了默认值以外的任何值,将会引发 NotImplementedError

[来源]

Pandas 兼容性说明

pandas.Series.str.replace()

参数 caseflags 目前还不支持,如果设置了默认值以外的任何值,将会引发 NotImplementedError

[来源]

[来源]

[来源]

[source]

Pandas 兼容性说明

pandas.core.groupby.DataFrameGroupBy.apply(),

pandas.core.groupby.SeriesGroupBy.apply()

cuDF的groupby.apply与pandas相比有所限制。 在某些情况下,Pandas会将分组键作为索引的一部分返回,而cudf由于冗余性则不会这样做。例如:

>>> import pandas as pd
>>> df = pd.DataFrame({
...     'a': [1, 1, 2, 2],
...     'b': [1, 2, 1, 2],
...     'c': [1, 2, 3, 4],
... })
>>> gdf = cudf.from_pandas(df)
>>> df.groupby('a')[["b", "c"]].apply(lambda x: x.iloc[[0]])
     b  c
a
1 0  1  1
2 2  1  3
>>> gdf.groupby('a')[["b", "c"]].apply(lambda x: x.iloc[[0]])
   b  c
0  1  1
2  1  3

[来源]

[来源]

[来源]

[来源]

[来源]

Pandas 兼容性说明

pandas.core.groupby.DataFrameGroupBy.max(),

pandas.core.groupby.SeriesGroupBy.max()

仅限数值,最小计数

[来源]

[来源]

[来源]

Pandas 兼容性说明

pandas.core.groupby.DataFrameGroupBy.min(),

pandas.core.groupby.SeriesGroupBy.min()

仅限数值,最小计数

[来源]

[来源]

[来源]

Pandas 兼容性说明

pandas.core.groupby.DataFrameGroupBy.sum(),

pandas.core.groupby.SeriesGroupBy.sum()

仅限数值,最小计数

[来源]

Pandas 兼容性说明

pandas.DatetimeIndex.strftime()

以下日期格式标识符尚未支持:%c, %x,``%X``

[来源]

Pandas 兼容性说明

pandas.DataFrame.merge()

在cuDF中合并DataFrames会导致行顺序不确定。

[来源]

Pandas 兼容性说明

pandas.to_numeric()

与pandas的一个重要区别是,此函数不接受混合数字/非数字类型的序列。 例如 [1, 'a']。当接收到此类输入时,无论 errors 参数如何,都会引发 TypeError

[来源]