遍历数据帧中的行的最有效方法是什么?

时间:2019-07-11 13:18:41

标签: python pandas dataframe data-science

我正在处理具有超过1000万行的数据集。作为数据工程过程的一部分,我想更新一列,以满足其他两列的条件。

我是通过以下方式完成的,但是由于记录数量很大,因此执行起来会花费很多时间。

    for i in df1.index:
       val1, val2= 0,0
       val1 = df1.iat[i,6]
       val2 = df1.iat[i,7]

       if val1 < 270.37 and val2 < 2.5:
          df1.at[i,'ppt_type']= 1
       elif val1<270.37 and val2>=2.5 and val2<7.6:
          df1.at[i,'ppt_type']=2
       else:
          df1.at[i,'ppt_type']= 3

请建议可以有效更新列值的方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

使用numpy.where()可以根据不同的列组合不同的条件。

import numpy as np
import pandas as pd

data = [{'a': 1, 'b': 2, 'c':3},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)

a   b   c
1   2   3
5   10  20

df.a = np.where((df.b >=10 ) & (df.c <= 30),1,df.a)

a   b   c
1   2   3
1   10  20