【Pandas】这一段代码为什么会报错?
import pandas as pd#识别登分表中含有的科目
data = pd.read_excel(r'D:\Desktop\登分表.xls')
columns = list(data.columns)
subjects_list = ['语文','数学','英语','日语','外语','物理','化学','地理','生物','政治','历史']
subjects =
#新增已有科目的单科排名sheet
with pd.ExcelWriter(r'D:\Desktop\成绩统计.xls') as writer:
data.to_excel(writer, sheet_name='所有科目')
Personal_Information = columns.index(subjects)-1
for i in subjects:
rank = i +'单科排名'
single_subject_ranking = data.loc[:,i]
single_subject_ranking.sort_values(rank,inplace = True)
single_subject_ranking.to_excel(writer,sheet = rank)
sequence = []
for i in subjects:
data = data.rank(method='min', ascending=False)
sequence.append(i,i+'排名')
data['三科总分'] = data['语文'] + data['数学'] + data['英语']
data['三科总分排名'] = data['三科总分'].rank(method = 'min',ascending = False)
data = data.loc.sum(axis=1)
data = data.rank(method = 'min',ascending = False)
data.sort_values(by= range(subjects) + "科总分名次", inplace=True)
如上 本帖最后由 来自星星的小明 于 2021-2-18 14:46 编辑
rank = i +'单科排名'
single_subject_ranking.sort_values(rank,inplace = True)
rank 是你自己新定义的字段,原数据并不存在这一列,不能根据rank字段排序
sort_values()
by:str or list of str;如果axis=0,那么by="列名";如果axis=1,那么by="行名";
single_subject_ranking = data.loc[:,i]
这句代码只是拿到了这个DataFrame中的数据,没有表头,是根据表头的字段对应的列进行排序的
本帖最后由 qq1151985918 于 2021-2-17 19:02 编辑
报错信息是什么
第15行是不是多一个逗号? qq1151985918 发表于 2021-2-17 19:00
报错信息是什么
第15行是不是多一个逗号?
第16行报错,ValueError: No axis named 语文单科排名 for object type Series lzymm1 发表于 2021-2-17 19:08
第16行报错,ValueError: No axis named 语文单科排名 for object type Series
除非你把execel表发出来 wp231957 发表于 2021-2-18 09:01
除非你把execel表发出来
怎么发 wp231957 发表于 2021-2-18 09:01
除非你把execel表发出来
考号班别姓名语文数学英语物理化学生物政治历史地理
11刘6913028999087464688
21陈9211374.5855662575157
31黎9310762628288675929
41张94110118.5427278777133
51曾1028945.5598085644468
61赖8310073766881776465
71李8410573.5655273644151
81王7411834699088455351
91范8695100616241663729
101张825985433458686641
111曹849889.5656073575750
121林8159105567674645161
131王12010259.5405849693738
141植869452555255656754
151容956793353432623534
161梁886367.5516268513247
171袁8210655.5555272465761
181黎943467454047525245
191林967363.5464766597158
201叶1018468515863634140
wp231957 发表于 2021-2-18 09:01
除非你把execel表发出来
大概就是这样的 wp231957 发表于 2021-2-18 09:01
除非你把execel表发出来
第十六行是(by = rank,inplace = True)的话,就会说:
TypeError: sort_values() got an unexpected keyword argument'by' qq1151985918 发表于 2021-2-17 19:00
报错信息是什么
第15行是不是多一个逗号?
第十六行是(by = rank,inplace = True)的话,就会说:
TypeError: sort_values() got an unexpected keyword argument'by' 来自星星的小明 发表于 2021-2-17 18:56
rank = i +'单科排名'
single_subject_ranking.sort_values(rank,inplace = True)
rank 是你自己新定义的 ...
谢谢,悟了
页:
[1]