簡體   English   中英

我想迭代更新熊貓數據框

[英]I want to update a pandas dataframe iteratively

我有一個數據框,需要檢查其他2列中的某些條件並迭代更新另一列。 基本上,我想用新類別替換Smoke_status列中的NaN。

這是我的代碼:

import numpy as np
for i in range(df.shape[0]):
    if df['age'][i] < 15 and df['smoking_status'][i] == np.nan:
        df['smoking_status'][i] = 'never smoked'
    elif df['age'][i] >= 15 and df['smoking_status'][i] == np.nan:        
        df['smoking_status'][i] = 'occassional smoker'

該代碼運行,但是當我檢查更新的表時,我仍然沒有發現任何變化。 任何幫助,將不勝感激。

嘗試使用熊貓的矢量化函數,而不是遍歷每個問題。 它們都更快,並且代碼更整潔:

cond = df['smoking_status'].isna()
df.loc[cond, 'smoking_status'] = np.where(df.loc[cond, 'Age'] < 15, 'never smoked', 'occassional smoker')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM