Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
176 views
in Technique[技术] by (71.8m points)

python - pandas pivot table where the column contains a string with multiple catogeries

I have a data in the form:

'cat'     'value'
a         1
a,b       2
a,b,c     3
b,c       2
b         1

which I would like to convert using a pivot table:

'a'  'b'  'c'
1
2    2
3    3    3
     2    2
     1

How do I perform this. If I use the pivot command:

df.pivot(columns= 'cat', values = 'value')

which yields this result

'a' 'a,b' 'a,b,c' 'b,c' 'b' 
1
     2
           3
                   2
                        1
question from:https://stackoverflow.com/questions/65941783/pandas-pivot-table-where-the-column-contains-a-string-with-multiple-catogeries

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try with str.get_dummies and multiply the value column (then replace 0 with nan if necessary)

df['cat'].str.get_dummies(",").mul(df['value'],axis=0).replace(0,np.nan)

     a    b    c
0  1.0  NaN  NaN
1  2.0  2.0  NaN
2  3.0  3.0  3.0
3  NaN  2.0  2.0
4  NaN  1.0  NaN

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...