Python让我无法将列表转换为图表输出

时间:2015-03-19 10:53:37

标签: python list charts output

我在下面设计了这个代码,它基本上用作输入,用户的行数,列数,最高值和最低值。

import random
import math


nrows=int(input("enter the number of rows: "))
ncols=int(input("enter the number of columns: "))
lowval=float(input("enter the lowest value: "))
highval=float(input("enter the highest value: "))

def list(nrows, ncols, lowval, highval):
    values=[[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]]

    for r in range(nrows):
        for c in range(ncols):
            values[r][c] = random.uniform(lowval,highval+1)

    print(values)


list(nrows, ncols, lowval, highval)

现在,我正在努力的领域是尝试获取列表并将其转换为类似于图表的更有条理的东西,以便输出基本上反映了这一点,例如:

Number of rows: 4
Number of columns: 3
Low value: -100
High value: 100

             0         1         2
   0     7.715     6.522    23.359
   1    79.955    -4.858   -71.112
   2    49.249   -17.001    22.338
   3    98.593   -28.473   -92.926

关于如何使我的输出看起来像上面所需的任何建议/想法?

编辑:我知道有一种方法可以通过使用熊猫来做到这一点,但我更想知道手动做..

我在下面的代码中有点接近我想要的输出:

for i in range(ncols):
    for a in range(nrows):
        print('%-12i%-12i' % (random.uniform(lowval,highval+1), random.uniform(lowval,highval+1)))  

这基本上给了我一个输出:

   enter the number of rows: 2
enter the number of columns: 3
enter the lowest value: 10
enter the highest value: 100
94          36          
95          33          
20          79          
17          19          
57          63          
60          30          

我现在需要做的是基本上我的行和颜色与用户的输入相匹配,让我知道是否有办法!

1 个答案:

答案 0 :(得分:0)

您将使用pandas。它创建的结构化数据与此完全相同。

>>> import pandas as pd
>>> import numpy as np
>>> low = -100.
>>> high = 100.
>>> nrows = 4
>>> ncols = 3
>>> df = pd.DataFrame(np.random.uniform(lowval, highval+1, (nrows, ncols)))
>>> print(df)
       0          1          2
0   7.247811  17.570162  32.860419
1   5.925314  14.012429  13.899928
2  22.602344  31.671225  18.199785
3  35.192664  11.216082  33.590036

此外,永远不要调用函数“list”,因为它会覆盖默认的列表构造函数。