将行添加(并计算)到dataframe,直到满足条件:

时间:2016-01-22 16:31:17

标签: python loops numpy pandas while-loop

我正在尝试构建一个数据框,该数据框在列中的前一行添加1,直到满足条件。在这种情况下,我想继续添加行,直到列'AGE'= 100.

import pandas as pd
import numpy as np


RP = {'AGE' : pd.Series([10]), 
      'SI' : pd.Series([60])}

RPdata = pd.DataFrame(RP)


i = RPdata.tail(1)['AGE']

RPdata2 = pd.DataFrame()

while [i < 100]:
    RPdata2['AGE'] = i + 1

    RPdata2['SI'] = RPdata.tail(1)['SI']    

    RPdata = pd.concat([RPdata, RPdata2], axis = 0)
    break

print RPdata

结果

    Age    SI
0   10     60
0   11     60

我理解break语句可以防止多次迭代,但是如果没有它,循环似乎是无限的。

我正在努力实现:

    Age    SI
0   10     60
0   11     60
0   12     60
0   13     60
0   14     60
.   .      60
0  100     60

有没有办法用while循环完成这个?我应该寻求一个for循环解决方案吗?

1 个答案:

答案 0 :(得分:0)

可能还有其他问题,但您将使用while [i < 100]:进入无限循环,因为非空列表将始终评估为True。将其更改为while (i < 100):(可选的parens)并删除break语句,这只会强制执行一次迭代。