【问题标题】:How to sort a column and find it's median? [duplicate]如何对列进行排序并找到它的中位数? [复制]
【发布时间】:2021-03-04 10:38:38
【问题描述】:

我有一个 csv 文件,我想对第一列进行排序(从大到小)。 第一列的名称是“CRIM”。

我可以读取第一列,但我无法对其进行排序,数字是浮点数。

另外,我想找到列表的中位数。

这是我到目前为止所做的:

import csv

with open('data.csv', newline='') as csvfile:
    data = csv.DictReader(csvfile)
    for line in data:
      print(line['CRIM'])

【问题讨论】:

    标签: python median


    【解决方案1】:

    https://www.programiz.com/python-programming/methods/built-in/sorted

    使用 sorted():

    CRIM_sorted = sorted(line['CRIM'])
    

    对于中位数,您可以使用一个包或自行构建: Finding median of list in Python

    【讨论】:

    • 由于某种原因,当我使用 sorted() 时,它将数字从这个 -> 0.004 拆分为这个 ["."。 “0”。 “0”。 “4”]。
    【解决方案2】:

    我建议使用pandas >> dataframe.median()

    例如数据:

    A   B   C   D
    0   12  5   20  14
    1   4   2   16  3
    2   5   54  7   17
    3   44  3   3   2
    4   1   2   8   6
    
    # importing pandas as pd 
    import pandas as pd 
    
    # for your csv
    # df = pd.read_csv('data.csv')
      
    # Creating the dataframe (example)
    df = pd.DataFrame({"A":[12, 4, 5, 44, 1], 
                       "B":[5, 2, 54, 3, 2], 
                       "C":[20, 16, 7, 3, 8],  
                       "D":[14, 3, 17, 2, 6]}) 
      
    # Find median Even if we do not specify axis = 0, the method  
    # will return the median over the index axis by default 
    df.median(axis = 0) 
    
    A    5.0
    B    3.0
    C    8.0
    D    6.0
    dtype: float64
    
    df['A'].median(axis = 0) 
    
    5.0
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-28
    • 2011-12-29
    • 1970-01-01
    • 2018-10-18
    • 2012-12-10
    • 2018-05-12
    • 2011-06-02
    相关资源
    最近更新 更多