【发布时间】:2019-09-01 05:09:23
【问题描述】:
我有一些数据框:
fake_data = {'columnA': ['XYVA', 'YXYX', 'XAVY', 'XAVY', 'XAAY', 'AXAV', 'AXYV', 'AXXV', 'AXXV', 'AXXV', 'AXXV']}
df = pd.DataFrame(fake_data, columns = ['columnA'])
df
我可以根据每个字符在每个位置的频率为单元格着色 (Count the frequency of characters at a position in a string in a Pandas DataFrame column):
new_data = df.columnA.str.split('', n = 4, expand=True).drop(0, axis=1)
stats = new_data.apply(pd.Series.value_counts)
stats = stats.apply(lambda x: x.div(x.sum())*100).round(1).fillna(0)
stats.style.background_gradient(cmap='Greys', axis=None)
返回:
现在我正在尝试从单元格中删除数值(仅保留颜色)并用颜色条表示这些值。
【问题讨论】:
-
我可以将数字着色为与背景相同的颜色,使它们看起来隐藏。至于颜色条,DataFrame.style 几乎不可能。看看annotated heatmaps(可能只是省略注释)。
-
plt.imshow()对您来说可能更容易。
标签: python pandas matplotlib