import pandas as pd
data ={"add":[1,2,3],"update":[1,2,3]}
data_sub = pd.DataFrame(columns=['interface_name','response_time'], index=[])
i =0for key, value in data.items():
data_sub.loc[i]=[key, value]
i +=1
data_sub['max_time']= data_sub['response_time'].apply(lambda x:max(x))# 降序排列
data_sub.sort_values(by="max_time", axis=0, ascending=False, inplace=True)
file_dir=""
data_sub.to_excel(file_dir,index=False)
2、将字典中的值写入到DataFrame中排序
import pandas as pd
data ={"add":[1,2,3],"update":[1,2,3]}
data_sub = pd.DataFrame(columns=['interface_name','response_time'], index=[])
i =0for key, value in data.items():
data_sub.loc[i]=[key, value]
i +=1
data_sub['max_time']= data_sub['response_time'].apply(lambda x:max(x))# 降序排列
data_sub.sort_values(by="max_time", axis=0, ascending=False, inplace=True)
file_dir=""
data_sub.to_excel(file_dir,index=False)
3、对dataframe中的数据进行统计,使用groupby和apply
import pandas as pd
defget_test_result_rate(test_data):# columns=['case_title','method','path','data','file','res','assert_expression','result']
data = pd.DataFrame(
columns=['case_title','method','path','data','file','res','assert_expression','result'])for key, value in test_data.items():
data = data.append(value, ignore_index=True)
data['module_name']= data['case_title'].apply(lambda x: re.findall('(【.*】-.+?)-', x)[0]iflen(re.findall('(】-.*?-)', x))>0else re.findall('(【.*】', x)[0])
df_new = pd.DataFrame(columns=['module_name','total_count','pass_count','fail_count'])for name, group in data.groupby(by='module_name'):
total_count = group['module_name'].count()
pass_count = group[group['result'].str.contains('pass')]['result'].count()
fail_count = group[group['result'].str.contains('fail')]['result'].count()
skip_count = group[group['result'].str.contains('skip')]['result'].count()
statistics_value ={'module_name': name,'total_count': total_count,'pass_count': pass_count,'fail_count': fail_count,'skip_count': skip_count}
df_new = df_new.append(statistics_value, ignore_index=False)
df_new['pass_rate']=(df_new['pass_count']+ df_new['skip_count'])/ df_new['total_count']
df_new['pass_rate']= df_new['pass_rate'].apply(lambda x:'{:.2%}'.format(x))
df_new.sort_values(by=['total_count'],ascending=[False],inplace=True,ignore_index=True)return df_new
4、对dataframe中的数据进行统计,使用groupby和apply
import pandas as pd
data=pd.DataFrame(columns=['A','B'])# 提取分组中大于2个元素的数据
data.groupby('B').filter(lambda x:len(x)>2)
data.groupby('B').filter(lambda x:len(x)>2,dropna=False)
5、读取某个目录下的所有yaml文件,以及文件夹里面的yaml文件
import os
defget_yaml_files(path:list):
path_list =[]
project_root = os.path.dirname(os.path.dirname(__file__))
file_path = os.path.join(project_root,*path)for root, dirs, files in os.walk(file_path):forfilein files:iffile.endswith('.yaml'):
path_list.append(os.path.join(root,file))return path_list
if __name__ =='__main__':
case_dir =['case']
case_files_list = get_yaml_files(case_dir)print(case_files_list)