<p>我的解决方案有点残酷:</p>
<pre><code>import pandas as pd
array = ['preprocessed\\AB_30624_badchannels.set', {'E88', 'E91', 'E248', 'E139', 'E245', 'E216', 'E111'},
'preprocessed\\ACM_98630_badchannels.set', {'E88', 'E186', 'E91', 'E139', 'E102', 'E216', 'E111', 'E238'},
'preprocessed\\AL_96705_badchannels.set',
{'E88', 'E37', 'E91', 'E73', 'E232', 'E256', 'E139', 'E235', 'E216', 'E46'},
'preprocessed\\AP_43781_badchannels.set',
{'E25', 'E164', 'E253', 'E104', 'E230', 'E237', 'E18', 'E198', 'E120', 'E10', 'E233', 'E46', 'E54', 'E82',
'E31'}]
row_names = []
rows = []
# add string names in array to row_names-list and use dicts to fill rows-list
for i in array:
if isinstance(i, str):
# split sring to only use file name as row name
colum_name = i.split("\\")
row_names.append(colum_name[1])
elif isinstance(i, set):
rows.append([j for j in i])
# merge rows and row_names to DataFrame
max_length = max([len(i) for i in rows])
df = pd.DataFrame(index=row_names, columns=list(range(15)))
for i in range(df.shape[0]):
for j, val in enumerate(rows[i]):
df.iloc[i,j] = val
# transform rows to columns and vice versa
df = df.T
</code></pre>
<p>在我看来,数据帧不是存储不同大小信息的正确格式。这里推荐一个dict</p>