继上次数据分析代码
由于dict类型的键Key太多,保存数据时,效果并不理想。
新需求:在已有dict 数据格式前提下,将key 和 values 转置,以达到更好的保存数据的。
代码
import pandas as pd
import numpy as np
import os
file_path=r"G:\HEPS_NAMI\results"
#存放所有文件名
file_list=[]
#存放所有子文件夹下对应的文件名
file_dict={}
for iroot,idirs,ifiles in os.walk(file_path):
if not idirs:
file_dict[iroot]=ifiles[4]
data={}
#遍历所有文件,拼接路径
for k,v in file_dict.items():
content=[]
file_name=os.path.join(k,v)
file=pd.read_csv(file_name,sep=',',encoding='utf-8',header=0)
content=file.iloc[14,2:]
p_value=k[25:30]
data[p_value]=content
data=pd.DataFrame(data)
data2=pd.DataFrame(data.T)
# data.to_csv('data.csv')
print(data2)
输出数据格式
flux [phs/s] center_H [um] center_V [um] FWHM_H [um] FWHM_V [um]
48 7.477e+12 0 0.004348 0.053576 0.030439
48.1 7.872e+12 -0 0.004307 0.052513 0.030152
48.2 7.769e+12 -0 0.004339 0.051452 0.030371
48.40 8.64e+12 0 0.004329 0.042071 0.030305
48.50 8.807e+12 -0 0.004324 0.04063 0.030271
总结
对dict类型的数据,通常的会用pandas 的DataFrame进行操作,如果仅是对values转置:只需要:
import ...
a_dic={.....}
a_dict=pd.DataFrame(a_dic)
#对值进行转置
data=pd.DataFrame(a_dict.values.T)
#对键值对进行转置
data2=pd.DataFrame(a_dict.T)
这两种转置效果还是有些区别:
需要键时,可以用a_dict.T。
只需要值时,可以用a_dict.values.T