###environment###
### $ pip install xlrd
### $ pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
#coding:utf-8
import pandas as pd
import os
def read_excel_function(execl_path, name_1, name_2):
df=pd.read_excel(execl_path)
#df=pd.read_csv(execl_path, encoding='gbk') #处理csv
excel_data = {}
excel_data_list = []
for i in df.index.values:#获取行号的索引,并对其进行遍历:
if type(df.loc[i,[name_1]].to_dict()[name_1]) != str: #根据实际情况去改
continue
row_data_1 = df.loc[i,[name_1, name_2]].to_dict()[name_1]
row_data_2 = df.loc[i,[name_1, name_2]].to_dict()[name_2]
excel_data[row_data_1] = int(row_data_2)
excel_data_list.append(excel_data)
excel_data = {}
return(excel_data_list)
def count_dicts(dict1, dict2):
differ = set(dict1) ^ set(dict2)
same = set(dict1) & set(dict2)
for key in same:
dict1[key] = int(dict1[key]) + int(dict2[key])
for key in differ:
if key not in dict1.keys():
dict1[key] = dict2[key]
def main():
name_1 = "傻逼科目"
name_2 = "嫖资"
excel_dir = "excel"
excel_path_list=os.listdir(excel_dir)
excel_num = len(excel_path_list)
result_dict = {}
for i,excel_path in enumerate(excel_path_list):
root_path = os.path.join(excel_dir, excel_path)
#动态变量
names = locals()
names['dict%s' % i] = read_excel_function(root_path, name_1, name_2)
for i in range(excel_num):
for n, dict_ in enumerate(names['dict%s' % i]):
count_dicts(result_dict, dict_)
print(result_dict)
with open("all_count.txt",'w') as f:
f.write('{}{} {}\n'.format(name_1, ":", name_2))
for key in result_dict.keys():
f.write('{}{} {}\n'.format(key, ":", result_dict[key]))
if __name__ == '__main__':
main()
excel大概内容:
参考:Python利用pandas处理Excel数据的应用