【问题标题】:extracting values from a Dataframe rows using non unique values in other rows使用其他行中的非唯一值从 Dataframe 行中提取值
【发布时间】:2020-06-03 22:43:05
【问题描述】:

鉴于以下数据框,

  SecondsInDay  Min  Max
0             0    1    2
1           300    3    4
2           600    5    6
3             0    7    8
4           300    1    0
5           300    2   12
6           300    4   56

我想提取 SecondsInDay = 300 的每一行的总体最小值和最大值。

刚接触 DataFrames,花了一些时间,但我写了以下代码:

val = df[df.SecondsInDay==300]
index=val.index
maxVal=val['Max'][index[0]]
minVal=val['Min'][index[0]]
for d in index:
    if maxVal < val['Max'][d]:
        maxVal = val['Max'][d]
    if minVal> val['Min'][d]:
        minVal= val['Min'][d]

确实返回了正确的值

maxVal=56
minVal=1

但是,我读到迭代 DataFrames 并不是很好,特别是在规模上,

所以我能写得更好吗?

提前致谢

【问题讨论】:

    标签: python pandas dataframe iteration


    【解决方案1】:

    所以我们可以agg

    df.loc[df.SecondsInDay==300].agg({'Min':'min','Max':'max'})
    Out[122]: 
    Min     1
    Max    56
    dtype: int64
    

    【讨论】:

      【解决方案2】:

      重症监护室

      df[df['SecondsInDay']==300].agg(['max','min'] )
      

      【讨论】:

      • 这只是因为在这种情况下最大值和最小值都在正确的列中。
      • 感谢二凡的反馈。将它留在那里以防万一,其他人可能会从您的 cmets 中受益。
      猜你喜欢
      • 1970-01-01
      • 2018-06-03
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      相关资源
      最近更新 更多