我的数据框如下:
a
0 [8, 10]
1 [12, 7, 9]
正如你所看到的,列a包含了一个列表。该列表中的数字在我们的领域内具有意义,我想将它们用作特征。我的预期输出如下:
Tag_7 Tag_8 Tag_9 Tag_10 Tag_12
0 0 1 0 1 0
1 1 0 1 0 1
我在互联网上找到了一些方法,它们符合我的期望,但是这些方法存在执行时间问题。其中一个方法如下:
pd.get_dummies(df.a.apply(pd.Series).stack().astype(int), prefix='Tag').sum(level=0)
我认为这种方法对于小型数据集非常有用。但对我的情况来说并不适用。我需要帮助。提前感谢。祝你拥有愉快的一天。
pd.Series(['|'.join(map(str, x)) for x in df['a']]).str.get_dummies().add_prefix('Tag_')
- Chris Adams