[英]How to get multiple columns from a single column?
我有这样的专栏:
Genre
Action|Crime|Drama|Thriller
Action|Crime|Thriller
Drama|Thriller
Crime|Drama
Horror|Thriller
Crime|Drama|Mystery|Thriller
Documentary
Comedy|Crime
Action|Adventure|Sci-Fi
.....
so on.
我想要的是输出像多列:
it generate various column of genre eg:
action scifi crime adventure . . . . .
0 1 0 1 0
1 0 0 0 0
使用.str.split
, stack
和get_dummies
:
df['Genre'].str.split('|',expand=True).stack().str.get_dummies().sum(level=0)
输出:
Action Adventure Comedy Crime Documentary Drama Horror Mystery \
0 1 0 0 1 0 1 0 0
1 1 0 0 1 0 0 0 0
2 0 0 0 0 0 1 0 0
3 0 0 0 1 0 1 0 0
4 0 0 0 0 0 0 1 0
5 0 0 0 1 0 1 0 1
6 0 0 0 0 1 0 0 0
7 0 0 1 1 0 0 0 0
8 1 1 0 0 0 0 0 0
Sci-Fi Thriller
0 0 1
1 0 1
2 0 1
3 0 0
4 0 1
5 0 1
6 0 0
7 0 0
8 1 0
首先获取该列,然后在此列上执行.values[0]
。
其次,使用先前生成的字符串,将其用|分隔。 进入列表。
使用df[df[list]]
应该会给您所需的响应。
总结(对于单个条目):
genres = list(df['Genre'].values[0].split('|'))
df[genres]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.