interrows在运行Pyrics时发出NaN输出

2024-05-23 23:16:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个使用Pyrics的项目制作歌词数据集

我已经导入了数据集,安装了pyryrics,现在试图让Python为数据集中的所有行生成歌词,但它没有任何输入

import pandas as pd
data = pd.read_csv(r'C:\Users\kk\Desktop\dba lyrics analysis\all_periods_joined_for_lyrics_1.csv', header=1)
df=pd.DataFrame(data, columns=['Position', 'Track Name','Artist','Streams','date','period'])


for index, row in df.iterrows():
try:
    from PyLyrics import *
    df.loc[index, 'Lyrics'] = PyLyrics.getLyrics(row['Artist'], row['Track Name'])
except:
    pass

当我到达print(df)时,输出是用我的标题和'NaN'填充的表,而不是任何输出。此外,歌词列不会生成

我该怎么办

我是新的编码,但论文即将到期,所以任何和所有的帮助是高度赞赏的

提前谢谢


Tags: csv数据nameimportdffordataindex
1条回答
网友
1楼 · 发布于 2024-05-23 23:16:03

我可以想象,将PyLyrics导入到try-except块中会隐藏PyLyrics模块未安装在您的计算机上,因此无法导入的事实:

try:
    from PyLyrics import *
except:
    # If the import failed we can fix it here - but we just ignore it (pass)
    pass

相反,将from PyLyrics import *放在文件的开头,不带try-except块,这样,如果未安装包,脚本将立即失败。在这里看一下如何安装包:https://pypi.org/project/PyLyrics/

下面的代码对我来说非常有效

from PyLyrics import PyLyrics
from pprint import pprint
from pandas import read_csv

songs = read_csv('songs.csv', header=None, names=['Artist','Title'])
for index, row in songs.iterrows():
  print('Getting lyrics for', row.Artist, row.Title)
  try:
    lyrics = PyLyrics.getLyrics(row.Artist, row.Title)
  except:
    lyrics = None
    print('Failed to get lyrics for', row.Artist, row.Title)
  songs.loc[index, 'Lyrics'] = lyrics

pprint(songs)

"""
Getting lyrics for ErrorUndefined DoesNotExist
Failed to get lyrics for ErrorUndefined DoesNotExist
Getting lyrics for Taylor Swift Blank Space
Getting lyrics for Bon Jovi It's My Life
           Artist         Title                                             Lyrics
0  ErrorUndefined  DoesNotExist                                                NaN
1    Taylor Swift   Blank Space  Nice to meet you, where you been?\nI could sho...
2        Bon Jovi  It's My Life  This ain't a song for the broken-hearted\nNo s...
"""

歌曲.csv

Artist,Title
ErrorUndefined,DoesNotExist
Taylor Swift,Blank Space
Bon Jovi,It's My Life

相关问题 更多 >