Pandas 将字符串系列转换为字符串列表系列(大小为 1)以进行编码
Pandas convert Series of strings to Series of lists of strings (of size 1) for encoding
我知道标题令人困惑,但让我解释一下。我正在尝试为 sklearn.MultiLableBinarizer
准备 Series',每个字符串都是我想要 one-hot-encode 的单独用户 ID。错误地,它迭代了字符串的每个单独字符。做 series.apply(list)
做同样的事情,将每个字符串拆分成单独的字符。如果系列是这样的:
0 '3436803478'
1 '1230782212'
2 '7320482099'
...
那么我希望输出为
0 ['3436803478']
1 ['1230782212']
2 ['7320482099']
...
而不是
0 ['3','4','3','6','8','0','3','4','7','8']
1 ['1','2','3','0','7','8','2','2','1','2']
2 ['7','3','2','0','4','8','2','0','9','9']
...
如果我使用单个值,我会做 ids = [[s] for s in values]
,但由于我们使用系列和 apply()
,我需要类似函数名的东西,但是对于 []
。 list()
不起作用,如 here
所述
注意:字符串实际上以整数开头,但我可以使用 .apply(str)
来解决这个问题
链接 s.apply(lambda x: [x])
完美无缺。
我知道标题令人困惑,但让我解释一下。我正在尝试为 sklearn.MultiLableBinarizer
准备 Series',每个字符串都是我想要 one-hot-encode 的单独用户 ID。错误地,它迭代了字符串的每个单独字符。做 series.apply(list)
做同样的事情,将每个字符串拆分成单独的字符。如果系列是这样的:
0 '3436803478'
1 '1230782212'
2 '7320482099'
...
那么我希望输出为
0 ['3436803478']
1 ['1230782212']
2 ['7320482099']
...
而不是
0 ['3','4','3','6','8','0','3','4','7','8']
1 ['1','2','3','0','7','8','2','2','1','2']
2 ['7','3','2','0','4','8','2','0','9','9']
...
如果我使用单个值,我会做 ids = [[s] for s in values]
,但由于我们使用系列和 apply()
,我需要类似函数名的东西,但是对于 []
。 list()
不起作用,如 here
注意:字符串实际上以整数开头,但我可以使用 .apply(str)
链接 s.apply(lambda x: [x])
完美无缺。