gpt4 book ai didi

python - 使用 pd.DataFrame 中的 MultiIndex 绘制数据

转载 作者:行者123 更新时间:2023-12-01 03:06:23 24 4
gpt4 key购买 nike

我从 3 个不同的数据帧(均具有相同的键)导入数据,并将其组合到 1 个数据帧中。

df1 = read_xlsx('Means_Cent')
df2 = read_xlsx('Means_Rand')
df3 = read_xlsx('Means_Const')
df1['Key'] = 'Cent'
df2['Key'] = 'Rand'
df3['Key'] = 'Const'

df_means = pd.concat([df1,df2,df3], keys = ['Cent', 'Rand', 'Const'])

现在我想使用 DataFrame.plot() 创建一个图,其中同一个图中的每个键 = ['Cent', 'Rand', 'Const'] 有 1 个图表。

我的数据框 df_means 的一部分如下所示:

         02_VOI  03_Solidity  04_Total_Cells
Cent 0 1.430 19.470 132.0
1 1.415 18.880 131.0
2 1.460 19.695 135.0
3 1.520 19.695 141.0
Rand 0 1.430 19.205 132.0
1 1.430 19.170 132.0
2 1.445 19.430 133.5
3 1.560 19.820 144.5
Const 0 1.175 22.695 108.5
1 1.430 22.260 132.0
2 1.180 21.090 109.0
3 1.360 22.145 126.0

现在我想绘制 02_VOI 与 04_Total_Cells 的图,每个键应该是 1 个图( g1 = 02_VOI(Cent) vs 04_Total_Cells(Cent), g2 = 02_VOI(Rand) vs 04_Total_Cells(Rand) ...)

我使用 DataFrame.unstack() 尝试过:

df_means.unstack(level = 0).plot(x = '02_VOI', y = '04_Total_Cells')

但这似乎弄乱了按键。它返回 9 个图表(VOI(Cent,Rand,Const) 与 Total_Cells(Cent,Rand,Const) 的每种组合各 1 个图表。

感谢您的帮助,我也很高兴获得有关如何更好地连接 3 个初始数据帧的提示。

最佳答案

我想我会为此使用 Seaborn 图。这要容易得多。 Seaborn 喜欢 "tidy"数据。

import pandas as pd
import seaborn as sns
df_mean = pd.read_clipboard()
df_mean

输出:

         02_VOI  03_Solidity  04_Total_Cells
Cent 0 1.430 19.470 132.0
1 1.415 18.880 131.0
2 1.460 19.695 135.0
3 1.520 19.695 141.0
Rand 0 1.430 19.205 132.0
1 1.430 19.170 132.0
2 1.445 19.430 133.5
3 1.560 19.820 144.5
Const 0 1.175 22.695 108.5
1 1.430 22.260 132.0
2 1.180 21.090 109.0
3 1.360 22.145 126.0

根据需要重置索引并重命名列。

df_mean = df_mean.reset_index()
df_mean = df_mean.rename(columns={'level_0':'Groups','level_1':'Samples'})
_ = sns.lmplot(x='02_VOI',y='04_Total_Cells', data=df_mean, scatter=True, col='Groups',fit_reg=False)

enter image description here

关于python - 使用 pd.DataFrame 中的 MultiIndex 绘制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43369237/

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