Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.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中将NLTK FreqDist的结果作为行写入.csv文件_Python_Python 3.x_Csv_Nltk_Export To Csv - Fatal编程技术网

在Python中将NLTK FreqDist的结果作为行写入.csv文件

在Python中将NLTK FreqDist的结果作为行写入.csv文件,python,python-3.x,csv,nltk,export-to-csv,Python,Python 3.x,Csv,Nltk,Export To Csv,我试图根据python列表中的单词集合,写出文本文件中特定单词的频率计数结果(我没有将其包括在代码列表中,因为有几百个) 我的问题是将fdist[m]作为一行写入.csv文件。它正在生成一个错误 _csv.Error: iterable expected, not int 我如何重新编写此文件以将频率分布放入.csv文件中的一行中 提前感谢您有两种选择-使用writerow而不是writerows,或者先创建一个值列表,然后将其传递给writerows。writerows而不是fdist[m]

我试图根据python列表中的单词集合,写出文本文件中特定单词的频率计数结果(我没有将其包括在代码列表中,因为有几百个)

我的问题是将
fdist[m]
作为一行写入.csv文件。它正在生成一个错误

_csv.Error: iterable expected, not int
我如何重新编写此文件以将频率分布放入.csv文件中的一行中


提前感谢

您有两种选择-使用
writerow
而不是
writerows
,或者先创建一个值列表,然后将其传递给
writerows。writerows
而不是
fdist[m]
。现在,列表中的每一行值都应该是一个元组(或一个interable)。因此,要使
writerows
正常工作,您必须再次将其封装在元组中:

 writer.writerows([(fdist[m],)])
这里,逗号表示一个1值元组

要将所有值写入一行而不是此代码,请执行以下操作:

for m in word_list:
     print(CIK, [fdist[m]], end='')
     writer.writerows([fdist[m]])
你应使用:

for m in word_list:
     print(CIK, [fdist[m]], end='')
writer.writerows(([fdist[m] for m in word_list],))
请注意一个清单。
另一方面,仅通过查看您的代码,在我看来,您可以在不涉及
NLTK
library的情况下,通过使用标准库执行相同的操作。它是
FreqDist
类中的底层容器。

它正在写入正确的值,但在单独的行(列中)上。我需要的是在一行中写入计数,但在.csv文件中写入单独的单元格。我使用NLTK来实现这一点,因为我们稍后将更多地使用它进行TF-IDF计算。此外,这段代码将构建一个文本文件的语料库,我实际上需要它来计算目录中每个文本文件中出现的单词数。我将CIK编号与FreqDist连接到文件中,如下面所示:writer.writerows(([val]+[f_dist[m]表示word_列表中的m])```但它只是写出目录中最后一个文件的频率分布。这是python的缩进问题还是有其他原因?
for m in word_list:
     print(CIK, [fdist[m]], end='')
writer.writerows(([fdist[m] for m in word_list],))