我正在尝试构建一个数据框,该数据框在列中的前一行添加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循环解决方案吗?
答案 0 :(得分:0)
可能还有其他问题,但您将使用while [i < 100]:
进入无限循环,因为非空列表将始终评估为True。将其更改为while (i < 100):
(可选的parens)并删除break
语句,这只会强制执行一次迭代。