Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从DataFrame中的选定行打印表格_Python 3.x_Pandas_Matplotlib - Fatal编程技术网

Python 3.x 从DataFrame中的选定行打印表格

Python 3.x 从DataFrame中的选定行打印表格,python-3.x,pandas,matplotlib,Python 3.x,Pandas,Matplotlib,我有一个如下所示的数据帧: import pandas as pd df = pd.DataFrame({'Institution':['Uni1', 'Uni2', 'Uni3', 'Uni1', 'Uni2', 'Uni3'], 'Year': [2018, 2018, 2018, 2019, 2019, 2019], 'Value': [1000000, 2000000, 250000, 2300000, 300

我有一个如下所示的数据帧:

import pandas as pd

df = pd.DataFrame({'Institution':['Uni1', 'Uni2', 'Uni3', 'Uni1', 'Uni2', 'Uni3'],
                   'Year': [2018, 2018, 2018, 2019, 2019, 2019],
                   'Value': [1000000, 2000000, 250000, 2300000, 3000000, 90000],
                   'Rank': [10, 9, 1, 8, 7, 3]})
我想将分组为表的数据打印出来:

       Uni1    Uni2   Uni3
2018 1000000 2000000 250000
2019 2300000 3000000 90000
到目前为止,我只是想画一个简单的表,它不会按年份分开,它看起来像:

  Uni1    Uni2   Uni3    Uni1    Uni2   Uni3
1000000 2000000 250000 2300000 3000000 90000
这就是我正在使用的:

import matplotlib.pyplot as plt

plt.table(cellText = df.values.T)
这可以工作并打印整个数据帧,但当我尝试只获取一行时,会得到以下结果:

plt.table(cellText = df['Value'].values.T)

TypeError: object of type 'numpy.int64' has no len()
我知道一个解决方案是定义一个新的数据框,它只由我想要打印的行组成,但我怀疑这是最干净的解决方案。

要打印值列:

plt.table(cellText = df[['Value']].values.T)
请记住,
df[['Value']]
返回数据帧,但
df['Value']
返回序列

使用以下各项为每年创建行:


然后使用
plt.table

plt.table(cellText = df_table.values)

这是伟大的,我接受它作为答案。您知道如何将其绘制为一个表格,但值的格式为货币,即200000美元为200000美元吗?谢谢!。类似这样的内容:
df\u table=df.pivot\u table(index='Year',columns='Institution',values='Value')。astype('str')+'$'
Institution     Uni1     Uni2    Uni3
Year                                 
2018         1000000  2000000  250000
2019         2300000  3000000   90000
plt.table(cellText = df_table.values)