def wenjuan():
reuser=input('请再次输入您的用户名:')
print(f'欢迎【{reuser}】用户参与疫情问诊自动统计系统!')
xz1=[]
xz2=[]
xz3=[]
xz4=[]
xz5=[]
wd1=[]
wd2=[]
xz1=input('1.有无发烧症状?\n(A)有 (B)无:')
xz2=input('2.有无咳嗽症状?\n(A)有 (B)无')
xz3=input('3.有无身体酸痛症状?\n(A)有 (B)无')
xz4=input('4.有无咽喉不适症状?\n(A)有 (B)无')
xz5=input('5.有无味觉、嗅觉不灵敏或失灵?\n(A)有 (B)无')
wd1=input('6.已经持续多少天了?')
wd2=input('7.有无其他不适?')
with open('./tjlist.csv', 'a+', encoding='utf-8') as c:
c.write(f'{xz1}{xz2}{xz3}{xz4}{xz5}')
(提供选择题结果统计功能:对所得到的的问诊结果中的选择问卷进行数据统计,将选择题部分的答案进行汇总显示。提供问答结果查询功能:对问答问卷进行敏感词过滤后将查询结果展示出来。)
怎样才可以把那个CSV里面的数据统计出来呀,把xz1~xz5的数据统计,就统计A和B,搜了网上的教程,感觉都不太对
望采纳
可以把 xz1~xz5 的数据放入一个 list 中,然后使用 list 的 count 方法统计 A 和 B 的数量,代码如下:
xz_list = [xz1, xz2, xz3, xz4, xz5]
a_count = xz_list.count('A')
b_count = xz_list.count('B')
print(f'A 的数量是 {a_count},B 的数量是 {b_count}')
如果希望更细致地统计每个问题中 A 和 B 的数量,可以使用一个字典来存储统计结果,然后再按照问题名称输出统计结果,代码如下:
xz_dict = {
'有无发烧症状': xz1,
'有无咳嗽症状': xz2,
'有无身体酸痛症状': xz3,
'有无咽喉不适症状': xz4,
'有无味觉、嗅觉不灵敏或失灵': xz5
}
for question, answer in xz_dict.items():
a_count = answer.count('A')
b_count = answer.count('B')
print(f'{question} 的 A 的数量是 {a_count},B 的数量是 {b_count}')
最后,如果你想把统计结果写入 CSV 文件中,你可以使用 Python 的 csv 模块,代码如下:
import csv
# 读取答案
answers = []
with open('./tjlist.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
answers.append(row)
# 统计答案数量
result = {'A': 0, 'B': 0}
for answer in answers:
result[answer[0]] += 1
# 写入 CSV 文件
with open('./result.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerows(result.items())