def get_bar_data(): res=[] with open('yumusic.csv', 'r', encoding='utf-8') as f: reader = csv.reader(f) lines = list(reader) pos=0 zhong=0 neg=0 name=['消极','中性','积极'] for line in lines[1:]: item=float(line[4]) print(item) if item<-50: neg+=1 if -50<item<50: zhong+=1 if item>50: pos+=1 value=[neg,zhong,pos] print(name) print(value) return jsonify({"name":name,"value":value}) 改为读取tf.xlsx,根据特征词进行绘图,将出现次数最多的十个特征词绘制为柱状图,横轴为词名,纵轴为出现次数
时间: 2024-03-17 10:41:48 浏览: 11
可以使用pandas库读取Excel文件并进行数据处理,然后使用matplotlib库绘制柱状图,代码如下:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取Excel文件
df = pd.read_excel('tf.xlsx')
# 获取出现次数最多的十个特征词
top_words = df.sort_values(by='count', ascending=False).head(10)
# 绘制柱状图
plt.bar(top_words['word'], top_words['count'])
plt.xlabel('词名')
plt.ylabel('出现次数')
plt.show()
```
需要注意的是,如果Excel文件中有多个表格,需要通过参数指定要读取的表格。同时,需要根据实际情况修改列名等参数。
相关问题
class myDataset(Dataset): def __init__(self, csv_file, txt_file, root_dir, other_file): self.csv_data = pd.read_csv(csv_file) with open(txt_file, 'r') as f: data_list = f.readlines() self.txt_data = data_list self.root_dir = root_dir def __ien__(self): return len(self.csv_data) def __getitem__(self, idx): data = (self.csv_data[idx], self.txt_data[idx]) return data
在您提供的代码中,有两个地方出现了错误。
首先,`__ien__` 应该是 `__len__`,表示获取数据集的长度。修正后的代码如下:
```python
import pandas as pd
from torch.utils.data import Dataset
class myDataset(Dataset):
def __init__(self, csv_file, txt_file, root_dir, other_file):
self.csv_data = pd.read_csv(csv_file)
with open(txt_file, 'r') as f:
data_list = f.readlines()
self.txt_data = data_list
self.root_dir = root_dir
def __len__(self):
return len(self.csv_data)
def __getitem__(self, idx):
data = (self.csv_data.iloc[idx], self.txt_data[idx])
return data
```
其次,在 `__getitem__` 方法中,您正在尝试使用索引访问 `self.csv_data` 和 `self.txt_data`,这样会导致错误。要正确访问数据,请使用 `.iloc` 用于 DataFrame 的索引,以及使用索引访问列表。修正后的代码如下:
```python
import pandas as pd
from torch.utils.data import Dataset
class myDataset(Dataset):
def __init__(self, csv_file, txt_file, root_dir, other_file):
self.csv_data = pd.read_csv(csv_file)
with open(txt_file, 'r') as f:
data_list = f.readlines()
self.txt_data = data_list
self.root_dir = root_dir
def __len__(self):
return len(self.csv_data)
def __getitem__(self, idx):
data = (self.csv_data.iloc[idx], self.txt_data[idx])
return data
```
这样,您的代码应该能够正常运行了。请注意,我假设您使用了 PyTorch 的 `Dataset` 类来实现您自己的数据集类。如果您使用其他深度学习框架或库,可能需要相应地调整代码。
def sign_in_f(): user_si_name = name_entry.get() user_si_pass = password_entry.get() if user_si_name in success: i = success.index(user_si_name) if success[i+1] == user_si_pass: import sys def sign_in_f(): user_si_name = name_entry.get() user_si_pass = password_entry.get() if user_si_name in success: i = success.index(user_si_name) if success[i + 1] == user_si_pass: with open('anjian.py', 'r', encoding='utf-8') as f: code = compile(f.read(), 'anjian.py', 'exec') exec(code) sys.exit()更改这段代码使界面结束并且使用with打开的程序
以下是修改后的代码:
```python
import sys
def sign_in_f():
user_si_name = name_entry.get()
user_si_pass = password_entry.get()
if user_si_name in success:
i = success.index(user_si_name)
if success[i+1] == user_si_pass:
with open('anjian.py', 'r', encoding='utf-8') as f:
code = compile(f.read(), 'anjian.py', 'exec')
exec(code)
sys.exit(0)
```
这个修改后的代码在执行完打开程序后,使用 `sys.exit(0)` 来结束界面程序。使用 `with` 语句来打开程序文件,可以确保文件在使用完后会被正确关闭。