gpt4 book ai didi

python - 如何将现有列放置在层次结构下?

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:19 24 4
gpt4 key购买 nike

我从 Excel 导入的数据已使用 Pandas 中的时间戳列进行多重索引。我想将剩余的列放入各自的层次组中。标记为“EMG”的层级列下的频段列(7 列:delta'、'theta'、'alpha'、'beta'、'high beta'、'gamma') “生物反馈”下的测量值(2 列:“心率变异性”和“GSR”)

有没有直接的方法来做到这一点?

第二部分是,如何将单级数据帧附加到这个多索引分层数据帧而不展平第一部分中创建的层次结构?

最佳答案

您可以创建MultiIndex.from_arrays然后reindex :

cols = ['delta','theta','alpha','beta','Heart Rate Variabilty','high beta', 'gamma','GSR']
df = pd.DataFrame([[4,5,8,3,1,0,9,2]], columns=cols)
print (df)
delta theta alpha beta Heart Rate Variabilty high beta gamma GSR
0 4 5 8 3 1 0 9 2

c1 = ['delta', 'theta', 'alpha', 'beta','high beta', 'gamma']
c2 = ['Heart Rate Variabilty', 'GSR']


mux = pd.MultiIndex.from_arrays([ ['EMG'] * len(c1) + ['Biofeedback'] * len(c2),c1 + c2])
print (mux)
MultiIndex(levels=[['Biofeedback', 'EMG'],
['GSR', 'Heart Rate Variabilty', 'alpha', 'beta',
'delta', 'gamma', 'high beta', 'theta']],
labels=[[1, 1, 1, 1, 1, 1, 0, 0], [4, 7, 2, 3, 6, 5, 1, 0]])

df = df.reindex(columns=mux, level=1)
print (df)
EMG Biofeedback
delta theta alpha beta high beta gamma Heart Rate Variabilty GSR
0 4 5 8 3 0 9 1 2

按评论编辑:

感谢您提供最终解决方案:

df1.columns = pd.MultiIndex.from_tuples([(c, '', '') for c in df1])
df = pd.concat([df, df1], axis=1)

关于python - 如何将现有列放置在层次结构下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45545987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com