【问题标题】:Dummy/One Hot Encoding of Comma Separated column in DaskDask中逗号分隔列的虚拟/一热编码
【发布时间】:2021-11-16 22:28:35
【问题描述】:
【问题讨论】:
标签:
python
pandas
scikit-learn
dask
【解决方案1】:
如果所有类的列表都已知,那么dask就轻而易举了:
import dask.dataframe as dd
import pandas as pd
from sklearn.preprocessing import MultiLabelBinarizer
df = pd.DataFrame({"col_a": ["c, d", "e", "g", "e, g", "d, e"]})
all_classes = ["c", "d", "e", "g"]
mlb = MultiLabelBinarizer(classes=all_classes)
def myfunc(df):
return pd.DataFrame(mlb.fit_transform(df["col_a"].values), columns=all_classes)
ddf = dd.from_pandas(df, npartitions=2)
ddf.map_partitions(myfunc, meta=pd.DataFrame(columns=all_classes)).compute()
如果列表未知,那么一个选项是首先通过数据框,收集所有唯一值,然后将这些类集成到类似于上述的 sn-p 中。