Python 3.x 将值作为索引,如果数据框中存在值,则将值替换为1
我有一个如下所示的数据帧:Python 3.x 将值作为索引,如果数据框中存在值,则将值替换为1,python-3.x,pandas,Python 3.x,Pandas,我有一个如下所示的数据帧: Snoopy Mickey Minnie Garfield SnowWhite 0 John Mike Steve Joe Jack 1 Mike Jack April Joy John 2 Steve Joe Jack Mike Jake 3
Snoopy Mickey Minnie Garfield SnowWhite
0 John Mike Steve Joe Jack
1 Mike Jack April Joy John
2 Steve Joe Jack Mike Jake
3 Joy
Snoopy Mickey Minnie Garfield SnowWhite
John 1 0 0 0 1
Mike 1 1 0 1 0
Steve 1 0 1 0 0
Jack 0 1 1 0 1
Joe 0 1 0 1 0
April 0 0 1 0 0
Joy 0 0 1 1 0
Jake 0 0 0 0 1
我希望将所有列中的所有唯一值转换为索引,并将值设为1和0,如下所示:
Snoopy Mickey Minnie Garfield SnowWhite
0 John Mike Steve Joe Jack
1 Mike Jack April Joy John
2 Steve Joe Jack Mike Jake
3 Joy
Snoopy Mickey Minnie Garfield SnowWhite
John 1 0 0 0 1
Mike 1 1 0 1 0
Steve 1 0 1 0 0
Jack 0 1 1 0 1
Joe 0 1 0 1 0
April 0 0 1 0 0
Joy 0 0 1 1 0
Jake 0 0 0 0 1
我还列出了所有唯一值:
clients = ['John','Mike','Steve','Jack','Joe','April','Joy','Jake']
这可能吗?谢谢大家! 我将使用
melt
和crosstap
s=df.melt()
s=pd.crosstab(s.variable,s.value)
Out[8]:
value April Jack Jake Joe John Joy Mike Steve
variable
Garfield 0 0 0 1 0 1 1 0
Mickey 0 1 0 1 0 0 1 0
Minnie 1 1 0 0 0 0 0 1
Snoopy 0 0 0 0 1 0 1 1
SnowWhite 0 1 1 0 1 0 0 0