首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >行间问题-运行PyLyrics时的NaN输出

行间问题-运行PyLyrics时的NaN输出
EN

Stack Overflow用户
提问于 2020-01-24 17:55:49
回答 1查看 73关注 0票数 0

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

我已经导入了dataset,安装了PyLyrics,现在尝试让Python为dataset中的所有行生成歌词,但它没有提供任何输入。

代码语言:javascript
运行
复制
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‘填充的表,而不是任何输出。此外,歌词列也不会生成。

我该怎么办?

我是编程新手,但论文很快就要完成了,所以我非常感谢大家的帮助!

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-01-24 20:31:44

我可以想象,将PyLyrics导入到try-except块中会掩盖这样一个事实,即PyLyrics模块没有安装在您的计算机上,因此无法导入:

代码语言:javascript
运行
复制
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/

下面的代码非常适合我。

代码语言:javascript
运行
复制
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...
"""

songs.csv

代码语言:javascript
运行
复制
Artist,Title
ErrorUndefined,DoesNotExist
Taylor Swift,Blank Space
Bon Jovi,It's My Life
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59894047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档