我有一个数据帧'网格'看起来像这样:
COLUMN_NM DISTINCT_COUNT MAX_COL_VALUE MIN_COL_VALUE NULL_COUNT
COL_A 123 456 111 56
COL_B 15678 222 4 3456
COL_C 18994 456 76 43
...
COLUMN_NM中的数据是动态的,因为此DataFrame加载了不同的表以供分析。我想要做的是绘制驻留在DataFrame中的当前数据。对于MAX_COL_VALUE等,我想要一个DISTINCT_COUNT的条形图...每列所有。所以COLUMN_NM将沿x轴表示
到目前为止,我所知道的是不正确的,但你知道我想要做什么。
distinct = grid[('COLUMN_NM', 'DISTINCT_COUNT')].plot(kind=bar)
max_col = grid[('COLUMN_NM', 'MAX_COL_VALUE')].plot(kind=bar)
min_col = grid[('COLUMN_NM', 'MIN_COL_VALUE')].plot(kind=bar)
null_cnt = grid[('COLUMN_NM', 'NULL_COUNT')].plot(kind=bar)
我有所有必要的import语句。我希望输出为4个图形,并且在我开始工作后可以指定更多的条形图参数。另外,将它包装在for循环或函数中会更容易吗?
答案 0 :(得分:2)
是的,我建议在循环中执行此操作:
for col in ['DISTINCT_COUNT', 'MAX_COL_VALUE', 'MIN_COL_VALUE', 'NULL_COUNT']:
grid[['COLUMN_NM', col]].set_index('COLUMN_NM').plot.bar(title=col)
您的代码存在以下问题:
grid[('COLUMN_NM', 'DISTINCT_COUNT')]
因为您使用的是元组而不是[(...)]
您希望[[...]]
选择列的子集COLUMN_NM
)设置为索引