我在数据框中创建了数据以保持示例简单。这也可能是操纵的输出。
import pandas as pd
dataset = pd.DataFrame({'a': range(0,20,2), 'b': range(10,30,2)})
print(dataset)
a b
0 0 10
1 2 12
2 4 14
3 6 16
4 8 18
5 10 20
6 12 22
7 14 24
8 16 26
9 18 28
在新的 Power BI 文件中,
1. Get Data/More/Other/Python Script
粘贴:
dataset = pandas.DataFrame({'a': range(0,20,2), 'b': range(10,30,2)})
# Note the use of pandas, not pd
在导航器窗口中,选择 Python 下的“数据集”
如果您想操作数据,请选择加载或转换数据。
加载后,您可以像任何其他表格一样可视化和使用数据。
编辑
当问题因为没有集中注意力而关闭时。我认为这就是 op 想要的。
在 Power BI 中,从 python 脚本创建如下数据集:
dataset = pd.DataFrame(np.random.randn(10, 8), columns=list('abcdefgh'))
使用 matplotlib.pyplot 从表中创建热图。您可以比本示例更广泛地控制热图。
所以在 Power BI 的可视化中,添加以下 python 脚本(取自Conditional formatting for 2- or 3-scale coloring of cells of a table):
# The following code to create a dataframe and remove duplicated rows is always executed and acts as a preamble for your script:
# dataset = pandas.DataFrame(a, b, c, d, e, f, g, h)
# dataset = dataset.drop_duplicates()
# Paste or type your script code here:
import pandas as pandas
import numpy as np
import matplotlib.pyplot as plt
#Round to two digits to print nicely
vals = np.around(dataset.values, 2)
#Normalize data to [0, 1] range for color mapping below
normal = (dataset - dataset.min()) / (dataset.max() - dataset.min())
fig = plt.figure()
ax = fig.add_subplot(111)
ax.axis('off')
the_table=ax.table(cellText=vals, rowLabels=dataset.index, colLabels=dataset.columns,
loc='center', cellColours=plt.cm.RdYlGn(normal),animated=True)
plt.show()
从这里你得到:
如果您刷新数据,脚本将生成一个新的热图,如果您更新正在使用的任何数据,这就是您的 power bi 应该发生的情况。希望这会有所帮助。