我有一个如下所示的DataFrame。
DF =
id w R
1 A L
2 B J
3 C L,J
我现在想创建一个新列,以显示行中是否显示列R
中的值。
DF2 =
id w R L J
1 A L 1 0
2 B J 0 1
3 C L,J 1 1
我尝试了这一行,但结果却不是我想要的:
for x in DF.R.unique():
DF[x]=(DF.R==x).astype(int)
DF2 =
id w R L J L,J
1 A L 1 0 0
2 B J 0 1 0
3 C L,J 0 0 1
解决此问题需要什么? DF也很大,而且慢速的方法也行不通。
答案 0 :(得分:4)
您需要指定sep
,在您的示例中是,
df.R.str.get_dummies(sep=',')
Out[192]:
J L
0 0 1
1 1 0
2 1 1
答案 1 :(得分:1)
我将使用pandas的内置str方法:
=COUNTIF($B$1:$B1,B1)>COUNTIF($A:$A,B1)