用熊猫中其他列的值名称创建新列

时间:2018-08-06 17:16:33

标签: pandas dataframe

我有一个如下所示的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也很大,而且慢速的方法也行不通。

2 个答案:

答案 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)