import pandas as pd
import jieba
df = pd.read_excel('xuqiufenxi.xls')
print(df)
#新建一列存放分词结果
df['fenci'] = ''
#遍历每一行的文本,并将分词结果存入新建的列中
for i in range(len(df)):
print(i)
df['fenci'][i] = ' '.join(jieba.cut(df['需求内容'][i]))
print(df['fenci'][i])
#统计每个词出现的次数
word_count = {}
for word in df['fenci'][i].split():
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 将word_count字典转换成dataframe
word_count_df = pd.DataFrame(word_count.items(), columns=['word', 'count'])
# 按照count值降序排序
word_count_df = word_count_df.sort_values(by='count', ascending=False)
#输出excel
word_count_df.to_excel(f"{df['功能'][i]}.xlsx", index=False)
这个代码我运行出来是对表格的每一行进行分词并且统计词频之后,每一行生成一个表,怎么修改才能是对所有行的内容进行分词而且统计词频,然后把词频输出到一个表格中
```
该回答引用GPTᴼᴾᴱᴺᴬᴵ,具体如下:
你可以把循环遍历每一行的代码放到一个函数中,然后在外层再循环遍历每一行并调用这个函数。修改后的代码如下:
import pandas as pd
import jieba
# 定义函数来分词并统计词频
def word_count(df_row):
# 分词
fenci_result = ' '.join(jieba.cut(df_row['需求内容']))
# 统计词频
word_count = {}
for word in fenci_result.split():
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 将word_count字典转换成dataframe
word_count_df = pd.DataFrame(word_count.items(), columns=['word', 'count'])
# 按照count值降序排序
word_count_df = word_count_df.sort_values(by='count', ascending=False)
# 返回词频统计结果
return word_count_df
df = pd.read_excel('xuqiufenxi.xls')
print(df)
# 新建一个DataFrame存放所有行的词频统计结果
word_count_all = pd.DataFrame(columns=['word', 'count'])
# 遍历每一行的文本,并将分词结果存入新建的列中
for i in range(len(df)):
print(i)
# 对每一行进行分词并统计词频
word_count_df = word_count(df.iloc[i])
# 将当前行的词频统计结果添加到总的DataFrame中
word_count_all = pd.concat([word_count_all, word_count_df], ignore_index=True)
# 按照count值降序排序
word_count_all = word_count_all.sort_values(by='count', ascending=False)
# 输出excel
word_count_all.to_excel("word_count_all.xlsx", index=False)
这样修改后,对所有行的需求内容进行分词并统计词频后,将结果输出到一个名为"word_count_all.xlsx"的Excel文件中。
如果以上回答对您有所帮助,望采纳~谢谢