Python - Pandas - DataFrame - 根据条件将单列分解为多个布尔列
Python - Pandas - DataFrame - Explode single column into multiple boolean columns based on conditions
早上好伙计们,
根据某些条件(在本例中为 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 中是否已经存在某些内置方法。可能值的数量,因此新列的数量是可变的。
感谢和问候。
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
早上好伙计们,
根据某些条件(在本例中为 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 中是否已经存在某些内置方法。可能值的数量,因此新列的数量是可变的。
感谢和问候。
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