【问题标题】:How do I keep only min and max values of sublists within a list?如何仅保留列表中子列表的最小值和最大值?
【发布时间】:2020-03-04 15:42:22
【问题描述】:

我有一个数据框列:

df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9]})

我需要的输出列表是(保持范围的最小最大值):

[[1,4],[5,7],[8,9]]

这是我走了多远:

import pandas as pd
df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9]})

# Convert df column to a unique value list and sort ascending
us = df['a'].unique().tolist()
us.sort()
lst1 = [int(v) for v in us]

# Create 3 groups of values
lst2 = [lst1[i:i + 3] for i in xrange(0, len(lst1), 3)]

# Keep only min and max of these groups

如何转换:

[[1,3,4],[5,6,7],[8,9]]  

到我想要的输出?

【问题讨论】:

    标签: python pandas list numpy


    【解决方案1】:

    你可以使用数据框

    df = df.sort_values("a").drop_duplicates().reset_index(drop=True)
    df.groupby(df.index // 3).agg(['min', 'max']).values.tolist()
    

    【讨论】:

      【解决方案2】:

      您可以为此使用列表推导:

      lst3 = [[min(i), max(i)] for i in lst2]
      

      【讨论】:

        猜你喜欢
        • 2018-03-05
        • 1970-01-01
        • 2020-09-22
        • 2019-09-20
        • 2016-09-04
        • 1970-01-01
        • 2017-01-12
        • 1970-01-01
        相关资源
        最近更新 更多