【发布时间】:2021-02-22 02:37:01
【问题描述】:
我有一个包含很多歌曲的数据框,并包含诸如“标题”、“持续时间”、“艺术家”等列。我想找到“阿黛尔”在“艺术家”中的“持续时间最长”的歌曲'。我特别挣扎的事情是分隔“艺术家”,因为它们是用逗号分隔的值分隔的。所以我需要检查'Adele'是否在艺术家列表中,但不知道该怎么做。
【问题讨论】:
-
您能否提供一个代码 sn-p 来创建您正在使用的数据框的最小版本?
我有一个包含很多歌曲的数据框,并包含诸如“标题”、“持续时间”、“艺术家”等列。我想找到“阿黛尔”在“艺术家”中的“持续时间最长”的歌曲'。我特别挣扎的事情是分隔“艺术家”,因为它们是用逗号分隔的值分隔的。所以我需要检查'Adele'是否在艺术家列表中,但不知道该怎么做。
【问题讨论】:
如果没有看到您的数据框很难判断,但如果 Adele 是一列中的字符串并且您想要另一列的最大值,您可以尝试:
df[df['Artist'].str.contains('Adele')]['duration'].max()
【讨论】:
您可以使用str.contains 过滤艺术家。然后,idxmax 查找持续时间最长的行:
idx = df.loc[df['artist'].str.contains('Adele'), 'duration'].idxmax()
song_name = df.loc[idx, 'title']
【讨论】: