如果使用for循环满足特定条件,是否可以用同一行中的不同值替换值?

时间:2019-06-03 18:01:17

标签: python pandas for-loop

如果满足特定条件,则需要用另一个单元格的值替换某个单元格的值。

for r in df: 
    if df['col1'] > 1 :
        df['col2'] 
    else:

如果条件是如果第1列中的行的值大于1,那么我希望第1列中的每个值都被其第2列中的相应值替换。

2 个答案:

答案 0 :(得分:0)

无需遍历整个数据框。

idx=df['col1']>1
df.loc[idx,'col1']=df.loc[idx,'col2']

使用for循环

for _,row in df.iterrows():
    if row['col1']>1:
        row['col1']=row['col2']
    elif condition:
        #put assignment here
    else other_condition:
        #put assignment here

答案 1 :(得分:0)

这是一个例子

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 4, 6]})

print(df)
print('----------')

# the condition here is A^2 == B
df.loc[df['A'] * df['A'] == df['B'], 'A'] = df['B']

print(df)

输出

   A  B
0  1  4
1  2  4
2  3  6
----------
   A  B
0  1  4
1  4  4
2  3  6