Python 如果这个循环,那么那个循环
我对编码和处理一个项目非常陌生,我正在修改一些数据帧 现在,我有了一个数据框,其中包含几个a列,其中一个名为Python 如果这个循环,那么那个循环,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我对编码和处理一个项目非常陌生,我正在修改一些数据帧 现在,我有了一个数据框,其中包含几个a列,其中一个名为Check的列的值为True或False。该值基于代码中的公式给出 我想要实现的是另一个名为Price的列将添加+1,直到列Check为True 我尝试了以下代码行,但没有一行有效 df['Price'] = df['Price'].apply(lambda x: +1 if x == False) i = df['Check'] while i == False: df = d
Check
的列的值为True
或False
。该值基于代码中的公式给出
我想要实现的是另一个名为Price
的列将添加+1,直到列Check
为True
我尝试了以下代码行,但没有一行有效
df['Price'] = df['Price'].apply(lambda x: +1 if x == False)
i = df['Check']
while i == False:
df = df['Price'] =+ 1
df['PRICE'] = df.ix[df.Check.isin(False), 'PRICE'] = +1
我希望有人能帮助我,首先,一个示例数据帧:
import pandas as pd
data = {'check': [True, True, False], 'price': [3, 2, 0]}
df = pd.DataFrame(data)
df
示例数据帧是:
check price
0 True 3
1 True 2
2 False 0
使用该方法,可以选择要更改的数据。根据布尔数组df['check']==True选择行,并使用其名称price
选择列
df.loc[df['check'] == True, 'price']
给出所选行的索引和价格值:
0 3
1 2
然后,check
true行中的价格可以增加:
df.loc[df['check'] == True, 'price'] += 1
df
现在df
是:
check price
0 True 4
1 True 3
2 False 0
通过将这一行插入循环,价格将不断增加。然而,在某个时刻需要一些东西将check的值切换为false
请注意,==True
是多余的:df.loc[df['check','price']+=1
也可以工作
while循环的示例:
while not df['check'].all(): # loop while at least one check value is false
print(df, '\n')
df.loc[df['check'], 'price'] += 1 # increment the 'checked' price py one
df.loc[df['check'] == False, 'check'] = True # Switch the false to true, <- insert your formula
而不是df['check'].all():#在至少一个检查值为false时循环
打印(df,“\n”)
df.loc[df['check'],'price']+=1#增加'checked'价格py one
df.loc[df['check']==False,'check']=True#将False切换为True,欢迎!有关如何设置问题格式的提示,请参阅,以便我们可以重现您正在做的事情。此外,我可以直接看到您使用了PRICE
和PRICE
。如果您提供一个数据帧片段和一些示例输出,那么我们可以提供帮助。另外,请注意a=+1
与a=+1
和a=1
相同。只有a+=1
将值增加1,即。这是a=a+1的缩写,谢谢你的帮助!真的很有用。我添加了你的代码。但是使用while循环会产生以下错误:ValueError:序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。
我现在有了以下代码:I=df['check']而I==False:df.loc[df['check']==False,'price']+=1
然后我的while循环的公式是:它要遍历所有行吗?(那么就不需要了)还是要及时多次涨价?就是要涨价,直到所有的支票行都是真的。我成功了,非常感谢你的帮助!您是最好的:DI添加了另一个带有while循环的示例