Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python interrows问题-运行Pyrics时的NaN输出_Python_Python 3.x_Pandas - Fatal编程技术网

Python interrows问题-运行Pyrics时的NaN输出

Python interrows问题-运行Pyrics时的NaN输出,python,python-3.x,pandas,Python,Python 3.x,Pandas,我正在为一个使用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

我正在为一个使用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'的表,而不是任何输出。此外,歌词列不会生成

我该怎么办

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


提前谢谢

我可以想象,将
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
而是将Pyrics import*中的
放在文件的开头,而不使用
try except
块,这样,如果未安装软件包,脚本将立即失败。请在此处查看如何安装程序包:

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

从Pyrics导入Pyrics
从pprint导入pprint
从熊猫导入读取
歌曲=read_csv('songs.csv',header=None,name=['Artist','Title']))
对于索引,请选择歌曲中的行。iterrows()
打印('获取歌词',行.艺术家,行.标题)
尝试:
歌词=pyryrics.getLyps(row.Artist,row.Title)
除:
歌词=无
打印('无法获取',行.艺术家,行.标题的歌词)
songs.loc[索引,'歌词']=歌词
pprint(歌曲)
"""
获取ErrorUndefined DoesNotExist的歌词
无法获取ErrorUndefined DoesNotExist的歌词
获取泰勒·斯威夫特空白处的歌词
为Bon Jovi准备歌词这是我的生活
艺术家题名歌词
0错误未定义的DoesNotExist NaN
1 Taylor Swift空白处很高兴见到你,你去哪里了?\n我可以。。。
2 Bon Jovi这是我的生活这不是为心碎的人唱的歌\n不。。。
"""
歌曲.csv

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

您好,请提供更多的数据-例如一个小样本的
所有\u期间\u加入\u歌词\u 1.csv
,这样我们就可以根据实际数据运行您的程序并重现问题。此外,您的
for
-循环中的
try except
缩进看起来是错误的。
df
在执行
for
循环之前是否包含正确的数据?另外:请在文件开头执行PyLyrics import*
中的
,而不是每次执行for循环。嘿,谢谢你的回复。请参阅链接中的示例数据:我的意思是,你向我们展示了你问题的前(可能)3行,因此问题是独立的。(你可以编辑你的问题)(不是每个人都喜欢/可以从dropbox这样的外部来源下载文件)。谢谢,它确实可以工作,但输出的只是一首歌,但是,我有2000行(艺术家和歌曲),所以逐个浏览它们将是一项相当大的手工工作。有什么方法可以自动完成所有的行吗?我的数组<代码>歌曲可以很容易地替换为CSV文件的内容。@IrBa将代码更新为从CSV文件读取。您必须更新
名称
以匹配您的
,并使用
['Track Name']
或类似的名称更新我对
标题的使用。