我有这个表格,我想创建一个散点图,比如X轴的左侧海马体和Y轴的左侧大脑皮层,因为这是一个分层列,我不知道如何选择我需要的特定列
我试过:
tabla1.plot(kind="scatter", x=(tabla1.iloc[:, tabla1.columns.get_level_values(Hippocampus)=='left']), y=(tabla1.iloc[:, tabla1.columns.get_level_values(["Cerebral Cortex "])=='left']), alpha=0.6, c='black')
但我有一个错误:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
你能帮我吗
另外,我怎样才能摆脱层次化列而创建单独的列呢
因为我认为用这种方式工作更容易
谢谢
根据注释的建议,我将为您提供一个类似于我用来创建表的代码
首先,是一个示例数据帧(对不起,我试图使其类似):
data = {'RID': [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5], 'Str_dx': ['CN', 'CN', 'CN', 'CN', 'MCI', 'MCI', 'MCI', 'MCI', 'MCI;Dementia', 'MCI;Dementia', 'MCI;Dementia', 'MCI;Dementia', 'CN', 'CN', 'CN', 'CN', 'MCI', 'MCI', 'MCI', 'MCI'], 'reg_name': ['Hippocampus', 'Cerebral Cortex', 'Hippocampus', 'Cerebral Cortex', 'Hippocampus', 'Cerebral Cortex', 'Hippocampus', 'Cerebral Cortex', 'Hippocampus', 'Cerebral Cortex', 'Hippocampus', 'Cerebral Cortex', 'Hippocampus', 'Cerebral Cortex', 'Hippocampus', 'Cerebral Cortex', 'Hippocampus', 'Cerebral Cortex', 'Hippocampus', 'Cerebral Cortex'], 'reg_side': ['left', 'left', 'right', 'right', 'left', 'left', 'right', 'right', 'left', 'left', 'right', 'right', 'left', 'left', 'right', 'right', 'left', 'left', 'right', 'right'], 'gm_vol': [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]}
df = pd.DataFrame(data)
df
然后,我使用以下代码创建最终的分层表:
tab = pd.pivot_table(df, values='gm_vol', index=['RID', 'Str_dx'], columns=['reg_name', 'reg_side'])
tab
我希望这有帮助
扁平表
要删除多索引,请执行以下操作:
然后,plot命令很简单:
分层表
听起来您更喜欢将表展平,但为了完整起见,您可以使用^{} 对多索引进行切片
如果您想要左大脑皮层vs左海马,请沿
axis=1
(列)在level=1
(第二级)中指定key='left'
。然后用x='Cerebral Cortex', y='Hippocampus'
绘图:同样,如果您想要左大脑皮层与右大脑皮层,请在
level=0
(第一级)中沿axis=1
(列)指定key='Cerebral Cortex'
:相关问题 更多 >
编程相关推荐