我试图通过dask
使用get_dummies
,但它不会转换我的变量,也不会出错:
>>> import dask.dataframe as dd
>>> import pandas as pd
>>> df_d = dd.read_csv('/datasets/dask_example/dask_get_dummies_example.csv')
>>> df_d.head()
uid gender
0 1 M
1 2 NaN
2 3 NaN
3 4 F
4 5 NaN
>>> daskDataCategorical = df_d[['gender']]
>>> daskDataDummies = dd.get_dummies(daskDataCategorical)
>>> daskDataDummies.head()
gender
0 M
1 NaN
2 NaN
3 F
4 NaN
>>> daskDataDummies.compute()
gender
0 M
1 NaN
2 NaN
3 F
4 NaN
5 F
6 M
7 F
8 M
9 F
>>>
pandas
等效(在新终端中运行以防万一)是:
我对this resolved issue的理解是它应该可以工作,但是它是否需要先被拉入{pandas
数据帧中。我误读了吗?蒂娅。在
在尝试使用
get_dummies
之前,您需要将字符串列转换为Categorical
。This pull request添加了一个dask.dataframe.get_dummies
,如果您试图传递object
(string)列,这将导致错误,这与pd.get_dummies
不同。在要获得
Categorical
,您可以在dd.get_dummies
之前使用.categorize
,或者使用pandas>;=0.19,在CSV中使用read和dtype
关键字,如下所示下面是一个小例子:
^{pr2}$Dask需要
get_dummies
的分类,因为它需要知道它需要创建的所有新的虚拟变量。熊猫不必担心这些,因为你所有的数据都已经在内存中了。在相关问题 更多 >
编程相关推荐