早上好,章节,
基于某些条件(在这种情况下为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中是否已存在某些内置方法。可能的值的数量,因此新列的数量是可变的。
谢谢和问候。
答案 0 :(得分:4)
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