如何选择成对的列,在条形图中将它们相互绘制 pandas?

How to pick pairs of columns, plot them against each other in a bar chart pandas?

我已经导入了所需的库:

import pandas as pd
import scipy.stats
import matplotlib.pyplot as plt
import psycopg2 as pg

我有一个数据框如下:

df = pd.DataFrame({'non_read_avg': [0.58], 'non_write_avg': [0.75], 'non_mat_avg':[0.45], 'non_rwm_avg':[0.14],
          'rel_read_avg': [0.68], 'rel_write_avg': [0.70], 'rel_mat_avg':[0.75], 'rel_rwm_avg':[0.34]})

我想从这个数据框中 select 成对的列并将它们相互绘制:

df.plot(x=['non_read_avg','rel_read_avg', 'non_write_avg','rel_write_avg'], kind='bar')

然后将第一对('non_read_avg','rel_read_avg')标记为'Reading'(在x轴上),将第二对标记为('non_write_avg','rel_write_avg') 为 'Writing'。在图表上,每一对都有两种颜色:一种代表 'religious' 表示蓝色,另一种表示 'non-religious' 表示绿色。我将需要为数据框中的每一列执行此操作,基本上在同一个图表上有成对的条形图并以不同方式标记它们。这可能吗?

这是一个很好的数据整理问题。我的建议是首先以不同的方式组织数据。

df_rearanged = pd.DataFrame({
    'rel' : [0.68, 0.70, 0.75, 0.34],
    'non' : [0.58, 0.75, 0.45, 0.14]
    },index = ['read', 'write', 'mat', 'rwm']
)

通过这种方式,您可以获得有关数据框的行和列的所有信息

并且绘图变得非常容易,而且正是您想要的。

df_rearanged.plot(kind='bar')
plt.show()

希望对您有所帮助