Каков наиболее эффективный способ перебора строк в кадре данных? - PullRequest
0 голосов
/ 11 июля 2019

Я работаю над набором данных с более чем 10 миллионами строк. В рамках процесса разработки данных я хочу обновить столбец, если выполняется условие в двух других столбцах.

Я сделал это следующим образом, но из-за большого количества записей выполнение заняло много времени.

    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 голосов
/ 11 июля 2019

Используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...