nhập khẩu chúng
nhập numpy dưới dạng np
nhập pandas dưới dạng pd
os.chdir('C:\\Users\\dell\\Desktop')
in('work_directory: ', os.getcwd())
Loadfile_sheet = ['Danh sách Giám đốc và Thành viên.xlsx','Danh sách Giám đốc và Thành viên']
columns = ['biên nhận tham gia','biên nhận không tham gia','giám đốc','thành viên']
savefile_sheet = ['Thống kê biên nhận của giám đốc và thành viên.xlsx','Thống kê biên nhận của giám đốc','Thống kê biên nhận của thành viên']
hiển thị = [1,1]
def main(loadfile_sheet,columns,savefile_sheet,display):
#1. Tải excel và lấy danh sách
dữ liệu = pd.read_excel(loadfile_sheet[0],loadfile_sheet[1])
định nghĩa first_nan_index(pd):
đối với i, mỗi trong enumerate(pd):
nếu type(each) == np.float:
trở về tôi
trở về tôi
idx = first_nan_index(dữ liệu[cột[0]])
ans_attend_set = set(data[columns[0]][:idx])#Nhận danh sách người tham gia
idx = first_nan_index(dữ liệu[cột[1]])
ans_notatt_set = set(data[columns[1]][:idx])#Biên nhận danh sách không tham gia
idx = first_nan_index(dữ liệu[cột[2]])
concil_set = set(data[columns[2]][:idx])#Danh sách giám đốc
idx = first_nan_index(dữ liệu[cột[3]])
mem_set = set(data[columns[3]][:idx])#Danh sách thành viên
#2. Đếm số người tham dự các cuộc họp
concil_attend_set = set([]) #Biên lai tham dự cuộc họp
concil_notatt_set = set([]) #Biên lai cho giám đốc không tham dự
concil_notans_set = set([]) #Giám đốc chưa được nhận
cho mỗi phần tử trong concil_set:
nếu mỗi cái trong ans_attend_set:
concil_attend_set.add(mỗi)
elif mỗi cái trong ans_notatt_set:
concil_notatt_set.add(mỗi)
khác:
Council_notes_set.add(mỗi)
mem_attend_set = set([]) #Biên lai cho thành viên tham gia
mem_notatt_set = set([]) #Biên nhận cho thành viên không tham gia
mem_notans_set = set([]) #Không phải là thành viên biên nhận
cho mỗi phần tử trong mem_set:
nếu mỗi cái trong ans_attend_set:
mem_attend_set.add(mỗi)
elif mỗi cái trong ans_notatt_set:
mem_notatt_set.add(mỗi)
khác:
mem_notes_set.add(mỗi)
#3. Có hiển thị kết quả trung gian hay không
def disp(ss, cap, num = Đúng):
#ss: tập hợp danh sách
#cap: phần mô tả bắt đầu
in(cap,'({})'.format(len(ss)))
đối với i trong phạm vi (np.ceil (len (ss) / 5). astype (int)):
trước = i * 5
tiếp theo = (i+1) * 5
#Điều chỉnh định dạng hiển thị
đ = ''
cho mỗi mục trong danh sách(ss)[pre:nex]:
nếu len(each) == 2:
dd = dd + ' ' + mỗi
Elif len(mỗi) == 3:
dd = dd + ' ' + mỗi
khác:
dd = dd + '' + mỗi
in('{:3.0f} -{:3.0f} {}'. định dạng(i*5+1,(i+1)*5,dd))
nếu display[0]:
disp(concil_attend_set,'\nCác giám đốc tham gia')
disp(concil_notatt_set,'\nKhông tham dự cuộc họp')
disp(concil_notans_set,'\nKhông trả lời giám đốc')
nếu hiển thị[1]:
disp(mem_attend_set,'\nThành viên tham gia')
disp(mem_notatt_set,'\nKhông phải là thành viên')
disp(mem_notans_set,'\nKhông có thành viên trả lời')
#4. Viết để xuất sắc
định nghĩa trans_pd(df,ss,cap,i=1):
nếu len(ss) == 0:
df['serial number{}'.format(i)] = np.NaN
df[cap] = np.NaN
khác:
df['序号{}'.format(i)] = pd.DataFrame(np.arange(len(ss))+1)
df[cap] = pd.DataFrame(danh sách(ss))
df['_'*i]=pd.DataFrame([''])
trả về df
def set2list(mem_attend_set, mem_noting_set):
nếu len(mem_attend_set) > len(mem_noting_set):
L = len(bộ_ghi_vào_bộ_ghi_vào)
mem_notes_list = danh sách(mem_notes_set)
mem_notans_list.extend([''] * (L - len(mem_notans_set)))
mem_attend_list = danh sách(mem_attend_set)
khác:
L = len(mem_noting_set)
mem_attend_list = danh sách(mem_attend_set)
mem_attend_list.extend([''] * (L - chiều dài(mem_attend_set)))
mem_notes_list = danh sách(mem_notes_set)
trả về mem_attend_list,mem_notans_list
mem_attend_list, mem_noting_list = set2list(mem_attend_set, mem_noting_set)
df1 = pd.DataFrame(mem_attend_list, columns = ['Thành viên tham gia'])
df1['']=pd.DataFrame([''])
df1 = trans_pd(df1,mem_notatt_set,'thành viên không tham gia')
df1 = trans_pd(df1,mem_notans_set,'Thành viên không có biên nhận',2)
df1.index = df1.index + 1
Council_attend_list, Council_noting_list = set2list(council_attend_set, Council_noting_set)
df2 = pd.DataFrame(concil_attend_list, columns = ['Giám đốc tham gia'])
df2['']=pd.DataFrame([''])
df2 = trans_pd(df2,concil_notatt_set,'không tham dự cuộc họp')
df2 = trans_pd(df2,concil_notans_list,'Hòa giải không trả lời',2)
df2.index = df2.index + 1
người viết = pd.ExcelWriter(savefile_sheet[0])
df2.to_excel(người viết, tên_trang tính=savefile_sheet[1])
df1.to_excel(người viết, tên_trang tính=savefile_sheet[2])
người viết. lưu()
print('\n\nGhi vào excel thành công~~')
nếu __name__ == '__main__':
main(loadfile_sheet,columns,savefile_sheet,display)
Tôi là một lập trình viên xuất sắc, rất giỏi!