我有以下代码:
# 2.1. Selected datasets
for i in range(len(self.selected_datasets)):
self.outputfile.write('\n')
self.outputfile.write('Dataset : ' + self.selected_datasets[i]) #Print the pass ex : index1/index2/index3/...
oDataset = self.ohdf5.getDataset(self.selected_datasets[i]) # oDataset correspond to curselection dataset
# 2.2. Datatypes in dataset
self.datatype_listbox.select_set(0, 'end')
self.datatype_listbox.event_generate("<<ListboxSelect>>")
datas = self.datatype_listbox.curselection()
self.outputfile.write('\n')
for col in datas: # For datatype in selected dataset
c = Column(oDataset.h5data,oDataset.columns[col]) # oDataset.columns[col] dtype name ex : DATATYPE1
self.c_list.append(c)
for r in range(len(c.col)):
self.b_list.append(c.col[r])
# self.outputfile.write('\n')
self.outputfile.write(oDataset.columns[col] + ' : ') # Write Dtype name
for i in range(len(self.b_list)):
# self.outputfile.write('\n')
self.outputfile.write(str(self.b_list[i])) # Write Dtype 2,3,4
输出:
Dataset : /INDEX/NASTRAN/RESULT/ELEMENTAL/ELEMENT_FORCE/BEAM
DATATYPE1 : 234DATATYPE2 : 2340781415628DATATYPE3 : 2340781415628781478147814
我正在寻找一种获取Python的方式:
Dataset : /INDEX/NASTRAN/RESULT/ELEMENTAL/ELEMENT_FORCE/BEAM
DATATYPE1 DATATYPE2 DATATYPE3
2 2 .
3 3 .
4 4 .
. .
. .
我知道这很容易,但是我是Python初学者,并且我没有成功合并阅读的不同主题。如果答案涉及到文档,那就足够了。
答案 0 :(得分:0)
我假设您正在从文件中读取它。我将其用作代码的字符串。
import pandas as pd
import numpy as np
file = '''Dataset : /INDEX/NASTRAN/RESULT/ELEMENTAL/ELEMENT_FORCE/BEAM
DATATYPE1 : 234DATATYPE2 : 2340781415628DATATYPE3 : 2340781415628781478147814'''
file = file.split('\n')[1:]
file = ' '.join(file)
datatypes = file.split('DATATYPE')
datatypes = [x for x in datatypes if x != '']
temp_dict = {}
for elem in datatypes:
elem = elem.split(' : ')
temp_dict['DATATYPE' + str(elem[0])] = []
for i in elem[1]:
temp_dict.setdefault('DATATYPE' + str(elem[0]), []).append(i)
df = pd.DataFrame.from_dict(temp_dict, orient='index').fillna(np.nan).transpose()
输出:
DATATYPE1 DATATYPE2 DATATYPE3
0 2 2 2
1 3 3 3
2 4 4 4
3 NaN 0 0
4 NaN 7 7
5 NaN 8 8
6 NaN 1 1
7 NaN 4 4
8 NaN 1 1
9 NaN 5 5
10 NaN 6 6
11 NaN 2 2
12 NaN 8 8
13 NaN NaN 7
14 NaN NaN 8
15 NaN NaN 1
16 NaN NaN 4
17 NaN NaN 7
18 NaN NaN 8
19 NaN NaN 1
20 NaN NaN 4
21 NaN NaN 7
22 NaN NaN 8
23 NaN NaN 1
24 NaN NaN 4