在 pandas 中使用 while 循环创建数据框
Create a dataframe using while loop in pandas
我想使用 while 循环创建一个新的数据框。
输入为:
a=pd.DataFrame({'c':[1,3],'b':[10,20]})
我想处理一行,所以我选择了那一行:
s=a.loc[a['c']==3]
现在我想创建一个新的数据框 e
使用 s
中的值和 while 循环
我想应用条件,如果 s['c']<s['b']
添加 2
并且 return s['b']
如果值 >=s['b']
所需的输出应如下所示:
e=pd.DataFrame([3,5,7,9,11,13,15,17,19,20])
#(i am not allowed to add picture thats why)
我试过这些代码:
e=pd.DataFrame(s['c'])
for i in e:
while e[i,0]<s['b']:
e[i,0]=e[i,0]+2
i=i+1
第二次尝试:
e=pd.DataFrame(s['c'])
for i in e:
while e[i,0]<s['b']:
e.iat[i,0]=e.iat[i,0]+2
i=i+1
Pandas dataframes 通常用于通过完整 columns/rows 的统一操作来操作现有数据,而不是迭代事物,但是您可以通过生成列表来实现您正在寻找的效果通常并将其传递到数据框中:
i = s['c'][1]
l = []
while True:
l.append(i)
i += 2
if i >= s['b'][1]:
l.append(s['b'][1])
break
e=pd.DataFrame(l)
我想使用 while 循环创建一个新的数据框。
输入为:
a=pd.DataFrame({'c':[1,3],'b':[10,20]})
我想处理一行,所以我选择了那一行:
s=a.loc[a['c']==3]
现在我想创建一个新的数据框 e
使用 s
中的值和 while 循环
我想应用条件,如果 s['c']<s['b']
添加 2
并且 return s['b']
如果值 >=s['b']
所需的输出应如下所示:
e=pd.DataFrame([3,5,7,9,11,13,15,17,19,20])
#(i am not allowed to add picture thats why)
我试过这些代码:
e=pd.DataFrame(s['c'])
for i in e:
while e[i,0]<s['b']:
e[i,0]=e[i,0]+2
i=i+1
第二次尝试:
e=pd.DataFrame(s['c'])
for i in e:
while e[i,0]<s['b']:
e.iat[i,0]=e.iat[i,0]+2
i=i+1
Pandas dataframes 通常用于通过完整 columns/rows 的统一操作来操作现有数据,而不是迭代事物,但是您可以通过生成列表来实现您正在寻找的效果通常并将其传递到数据框中:
i = s['c'][1]
l = []
while True:
l.append(i)
i += 2
if i >= s['b'][1]:
l.append(s['b'][1])
break
e=pd.DataFrame(l)