循环遍历python

时间:2017-09-29 12:54:47

标签: python pandas

在Python中,(pandas)我想知道如何:

  1. 循环遍历多个列和行以便......
  2. 将它们与某些值进行比较......
  3. 进行比较后返回柱头
  4. 假设我有以下数据框:

       month_1  month_2  month_3  value  threshold_reached
    0     1000     2000     3000   2500  month_3
    1      300      500      700    400  month_2
    2        0       10       50     15  month_3
    

    每行,我想将列month_1month_2month_3与值列进行比较,并返回值列中数字较低的月份的列标题比那个月,但高于上个月(希望这是有道理的)。

    例如,在第一行中,值为2500,位于第2个月和第3个月之间,因此应在threshold_reached列中返回第3行。

    提前致谢!

1 个答案:

答案 0 :(得分:0)

print df

   month_1  month_2  month_3  value
0     1000     2000     3000   2500
1      300      500      700    400
2        0       10       50     15


df = df.assign(threshold_reached=df.apply( lambda row: row[row.gt(row['value'])].index[0] ,axis=1))


   month_1  month_2  month_3  value threshold_reached
0     1000     2000     3000   2500           month_3
1      300      500      700    400           month_2
2        0       10       50     15           month_3
  1. 创建函数以查找大于值的第一个数字

  2. 将功能应用于每一行

  3. 只有当至少有一个数字大于"值"时,代码才有效。如果没有大于"值"

    的数字,它将失败