python - interrows 问题 - 运行 PyLyrics 时输出 NaN
问题描述
我正在使用 PyLyrics 为一个项目制作歌词数据集。
我已经导入了数据集,安装了 PyLyrics,现在尝试让 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”的表格,而不是任何输出。此外,歌词栏不会生成。
我应该怎么办?
我是编码新手,但是这篇论文很快就要到期了,所以非常感谢任何和所有的帮助!!!
提前致谢!
解决方案
我可以想象将 import ofPyLyrics
放入一个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
推荐阅读
- javascript - 根据 Google 日历资源可用性更改 DOM
- python-3.x - 使用路由、视图和 GET 参数的 Python 3 + Flask 应用程序
- node.js - 如何在 node.js 中使用 redis?
- visual-studio-code - VS Code 在保存时自动删除内部空格
- python - 如何修复 jupyter notebook 中的数据集读取错误?
- javascript - 编写一个函数,返回 4 个数字中最大的一个
- python - would there be a more shorter version for finding keys from dictionary?
- javascript - 无法从 WSL 中的 npm/yarn 链接加载链接模块
- android - Android shell su 没有选项 -c
- ffmpeg - 如何自动将日期添加到 ffmpeg 中生成的输出文件?