我有kaggle的YouTube频道数据集,我想创建一个新的dataframe,其中的category_name仅作为音乐。 这是原始的dataframe--
df = pd.read_csv('channels.csv')
df.head(3)
输出是
category_id category_name channel_id country description followers join_date location picture_url profile_url title trailer_title trailer_url videos
0 24 Entertainment UC-lHJZR3Gqxm24_Vd_AJ5Yw United States I make videos. 69896406 2010-04-29 NaN https://yt3.ggpht.com/a-/AN66SAztY6oYWZnS1Cae9... http://www.youtube.com/channel/UC-lHJZR3Gqxm24... PewDiePie bitch lasagna https://www.youtube.com/watch?v=6Dh-RL__uN4 3649
1 10 Music UCq-Fj5jknLsUf-MWSy4_brA India \ 69471946 2006-03-13 NaN https://yt3.ggpht.com/a-/AN66SAxPfKnfHAnAs0rOq... http://www.youtube.com/channel/UCq-Fj5jknLsUf-... T-Series Guru Randhawa: GOLIMAAR Lyrical Video | Bhusha... https://www.youtube.com/watch?v=nJ1f44JvlC8 12820
2 24 Entertainment UCIwFjwMjI0y7PDBVEO9-bkQ NaN Help change the world. OUR album \'Purpose\' o... 41858494 2007-01-15 NaN https://yt3.ggpht.com/a-/AN66SAzY-4LlEPxP9YOux... http://www.youtube.com/channel/UCIwFjwMjI0y7PD... Justin Bieber DJ Khaled - No Brainer (Official Video) ft. Ju... https://www.youtube.com/watch?v=kxloC1MKTpg 132
我想创建一个新的dataframe,其中我只想存储category_name = Music的值。 我试过使用groupby并应用函数,但是没有得到期望的结果
分析解答
您可能要使用布尔切片。
is_music = df['category_name'] == 'Music'
new_df = df[is_music]
之所以可行,是因为is_music
是一个布尔型数组,它指示行的category_name
列是否等于Music
。在上面的three-row示例中,is_music
看起来像
>>> is_music
0 False
1 True
2 False
然后,我们可以使用此信息仅选择is_music
为True
的数据帧的行。这就是第二行代码所实现的。当然,您也可以将所有这些都写在一行中:
new_df = df[df['category_name'] == 'Music']