大家早上好,
根据某些条件(在本例中为 str.contains(将数据帧列分解为具有布尔标志的多个列的 pythonic 方法是什么?
假设我有这个:
Position Letter
1 a
2 b
3 c
4 b
5 b
我想实现这一点:
Position Letter is_a is_b is_C
1 a TRUE FALSE FALSE
2 b FALSE TRUE FALSE
3 c FALSE FALSE TRUE
4 b FALSE TRUE FALSE
5 b FALSE TRUE FALSE
可以通过循环"abc"并显式创建新的 df 列,但想知道 pandas 中是否已经存在一些内置方法。可能值的数量,因此新列的数量是可变的。
谢谢和问候。
使用 Series.str.get_dummies((:
In [31]: df.join(df.Letter.str.get_dummies())
Out[31]:
Position Letter a b c
0 1 a 1 0 0
1 2 b 0 1 0
2 3 c 0 0 1
3 4 b 0 1 0
4 5 b 0 1 0
或
In [32]: df.join(df.Letter.str.get_dummies().astype(bool))
Out[32]:
Position Letter a b c
0 1 a True False False
1 2 b False True False
2 3 c False False True
3 4 b False True False
4 5 b False True False