【发布时间】:2021-05-06 03:06:59
【问题描述】:
我有这张表,我想创建一个散点图,表示轴“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:DataFrame 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
你能帮帮我吗?
另外,我怎样才能摆脱分层列并创建单独的列?
| RID | str_dx | Cerebral cortex left | Cerebral cortex right | hippotalamus left | hippotalamus right |
|---|---|---|---|---|---|
因为我认为这样更容易工作。
谢谢。
根据评论的推荐,我给你一个类似于我用来创建表格的代码。
首先,一个示例数据框(对不起,我试图使其相似):
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
希望对你有所帮助。
【问题讨论】:
-
您提供了绘制数据的代码。但是,我们需要查看创建类似于您的数据表的代码。为测试目的创建的表应该有相同的列和行标签,但只有少量数据(最多10行数据)
-
一种快速的方法是编辑帖子并复制粘贴
table1.head(3).to_dict()和table1.tail(3).to_dict()的输出 -
谢谢!我花了最后 40 分钟尝试制作类似的东西 :(