我有h5文件,其中包含“事件/步态/下肢/下一个初始联系人”之类的节点路径。每个节点路径的行数不一样(25行,113行,21行,1行,22行或15744行),因为列数也不一样。我希望将具有相同行数的所有路径节点的值合并到数据框中,并删除括号,然后将其保存到Excel文件中的许多工作表中。另外,我希望在将每个数据框中包含多个组件的每个数据框中的每个项目拆分为多个列,然后再将其保存到Excel文件中。请不要,每个项目的组件数量都不相同。
此示例说明了我要执行的操作,此数据集包含(4列和3行):
1-数据框2-表格2-Excel文件1:
名称/一个名称/两个名称/三个名称1432 / fou
(192.26949,)(34.56,)(435.54,436.65,87.3,5432)(1.2,)
(189.4033245,)(58.654,)(45.51,56.612,54253.543,54.321)(1.54,)
(184.4593252,)(6543.6543,)(45.58,56.6412,654.876,765.66543)(1543.5,)
数据框1-工作表1-Excel文件1应该类似于保存到Excel文件之前的样子。上面的数据框应转换为7列和3行。
名称/一个名称/两个名称/ three1
192.26949 34.56 435.54
189.4033245 58.654 45.51
184.4593252 6543.6543 45.58
名称/三名/三名/三名1432 / fou
436.65 87.3 5432 1.2
56.612 54253.543 54.321 1.54
56.6412 654.876 765.66543 1543.5
下面的代码说明了我的工作,在将datframe保存到Excel文件之前,我只是遇到一个问题,即删除所有括号和逗号并将包含一个以上项目的每个项目分成两列或两列以上: / p>
dfd = {}
#{1:df1,5:df2,113:df3<-add col}
def print_attrs(name, obj):
global dfd
if '<class \'h5py._hl.dataset.Dataset\'>' == str(type(obj)):
k= str(len(obj))
if k not in dfd.keys():
df = pd.DataFrame()
#print(name,"Adding new key for len ", k)
else:
df = dfd[k]
df[name] = obj
df[name] = re.findall(r"\'([A-Za-z]+)\'", df[name])
df[name] = " ".join(df[name])
dfd[k] = df
l = len(obj[0])
f = h5py.File('walking5.h5', 'r')
f.visititems(print_attrs)
writer = pd.ExcelWriter('hd5excelout120.xlsx', engine = 'xlsxwriter')
for k, df in dfd.items():
print(k,len(df))
df.to_excel(writer, sheet_name = 'sheet_len_'+k)
writer.save()
writer.close()
我需要您的帮助来解决此问题。