Pandas 兼容性说明#
Pandas 兼容性说明
pandas.DataFrame.empty, pandas.Series.empty
如果DataFrame/Series仅包含null值,它仍然不被视为空。请参见上面的示例。
Pandas 兼容性说明
不支持额外的 kwargs。
位运算和逻辑运算符不依赖于数据类型。 具体来说,& 必须用于整数上的位运算, 而不是 and,后者专门用于布尔值之间的逻辑与运算。
目前仅支持数值类型。
操作符通常不会自动进行类型转换。用户有责任在评估函数之前将列转换为合适的类型。
不支持对同一名称进行多次赋值(即一系列赋值语句,其中后续语句依赖于先前语句的输出)。
Pandas 兼容性说明
参数 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是非数值类型时,Pandas期望结果是一个Series。而cuDF将返回一个DataFrame,因为它不支持Series中的混合类型。
Pandas 兼容性说明
注意:与Pandas的一个区别是,NA用于不匹配的行,而不是NaN。这的一个副作用是,列http_status在cuDF中保留整数类型,而在Pandas中则被转换为浮点数。
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.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.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.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.empty, pandas.Series.empty
如果DataFrame/Series仅包含null值,它仍然不被视为空。请参见上面的示例。
Pandas 兼容性说明
参数 min_periods, ignore_na, axis, 和 times
尚未被支持。行为仅针对以有效(非空)元素开始的数据定义。
目前,仅支持mean方法。
Pandas 兼容性说明
注意:与Pandas的一个区别是,NA用于不匹配的行,而不是NaN。这的一个副作用是,在cuDF中,序列保留了整数数据类型,而在Pandas中则被转换为浮点数。
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.sort_index(), pandas.Series.sort_index()
不支持:kind, sort_remaining=False
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 兼容性说明
参数 case 和 na 目前还不支持,如果设置了默认值以外的任何值,将会引发 NotImplementedError。 参数 flags 目前仅支持 re.DOTALL 和 re.MULTILINE。
Pandas 兼容性说明
flags 参数目前仅支持 re.DOTALL 和 re.MULTILINE。
在传递 pat 时,某些字符需要进行转义。例如,
'$'在正则表达式中具有特殊含义,因此在查找此字面字符时必须进行转义。
Pandas 兼容性说明
参数 case 和 flags 目前还不支持,如果设置了默认值以外的任何值,将会引发 NotImplementedError。
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
参数 freq 不受支持。
Pandas 兼容性说明
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 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
参数 freq 不受支持。
Pandas 兼容性说明
仅限数值,最小计数
Pandas 兼容性说明
与pandas的一个重要区别是,此函数不接受混合数字/非数字类型的序列。
例如 [1, 'a']。当接收到此类输入时,无论 errors 参数如何,都会引发 TypeError。