【问题标题】:Python: How to convert horizontal list of data points into vertical dataframe?Python:如何将水平数据点列表转换为垂直数据框?
【发布时间】:2021-08-10 01:15:18
【问题描述】:

我有一个变量,它是数据点 (x, y) 的水平列表。如何转换:

[(6493.16, 3.12), (5575.26, 2.76), (5571.83, 14.73), (7202.88, 3.08), (7569.92, 4.01), (7289.38, 10.24)]

到这里:

6493.16, 3.12
5575.26, 2.76
5571.83, 14.73
7202.88, 3.08
7569.92, 4.01
7289.38, 10.24

这样我可以将所有 y 值存储在一个单独的变量中,然后取所有 y 值的平均值吗?

【问题讨论】:

  • 你的意思是熊猫数据框吗?
  • 您可以通过列表理解获得所有 y 值:y_vals = [x[1] for x in datapoints]
  • 是的,任何类型的变量都可以让我隔离 y 值,然后计算 y 值的平均值。
  • 您可以使用原始列表来做到这一点,您不需要其他类型的变量。
  • 您评论中的 x 是什么? x 会是存储所有这些点的变量吗?

标签: python list dataframe average


【解决方案1】:

只需将其分配给变量,然后使用pandas.DataFrame

import pandas as pd

x = [(6493.16, 3.12), (5575.26, 2.76), (5571.83, 14.73), (7202.88, 3.08), (7569.92, 4.01), (7289.38, 10.24)]
df = pd.DataFrame(x)

【讨论】:

    【解决方案2】:

    您的列表只是一个 6x2 矩阵。

    使用 numpy 从矩阵中获取第二列。

    import numpy as np
    
    A = np.array([(6493.16, 3.12), (5575.26, 2.76), (5571.83, 14.73), (7202.88, 3.08), (7569.92, 4.01), (7289.38, 10.24)])
    
    #to get n-th column from matrix A, where n=0,1,2,.. use: A[:, n]
    #in your case:
    y = A[:, 1]
    
    #and you can applay mean on this column
    avg = np.mean(y)
    
    

    【讨论】:

      猜你喜欢
      • 2022-11-16
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 2021-11-27
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      相关资源
      最近更新 更多