簡體   English   中英

從其他兩列替換一列中的 NaN 值

[英]Replace NaN values in one column from two other columns

我有一個數據框,它是三個連接在一起的數據框。 我有變量表示它們來自哪個數據幀。 例如, DAY_OF_WEEK_summer1DAY_OF_WEEK_summer2DAY_OF_WEEK_summer3 一個值只能存在於這三列之一中,我想用 summer2 或 summer3 列中的值填充DAY_OF_WEEK_summer1NaN值。 總共有 11 個屬性需要填充NaN值。
這是一個示例數據框:

df = pd.DataFrame({
    'DAY_OF_WEEK_summer1': [np.nan, 'WKDY', 'SAT', np.nan, np.nan],
    'DAY_OF_WEEK_summer2': [np.nan, np.nan, np.nan, 'WKDY', 'WKDY'],
    'DAY_OF_WEEK_summer3': ['SAT', np.nan, np.nan, np.nan, np.nan],
    'ROUTE_summer1': [np.nan, 5, 6, np.nan, np.nan],
    'ROUTE_summer2': [np.nan, np.nan, np.nan, 10, 10],
    'ROUTE_summer3': [1, np.nan, np.nan, np.nan, np.nan]
})

我希望結果如下所示:

DAY_OF_WEEK_summer1  |  DAY_OF_WEEK_summer2  |  DAY_OF_WEEK_summer3  |  ROUTE_summer1 |  ROUTE_summer2   | ROUTE_summer3
---------------------+-----------------------+-----------------------+----------------+------------------+---------------
       SAT           |         NaN           |          SAT          |     1          |     NaN          |        1
       WKDY          |         NaN           |          NaN          |     5          |     NaN          |        NaN
       SAT           |         NaN           |          NaN          |     6          |     NaN          |        NaN
       WKDY          |         WKDY          |          NaN          |     10         |     10           |        NaN
       WKDY          |         WKDY          |          NaN          |     10         |     10           |        NaN
import numpy as np

df['DAY_OF_WEEK_summer1'] = np.where(df['DAY_OF_WEEK_summer1'].isnull(), df['DAY_OF_WEEK_summer2'], df['DAY_OF_WEEK_summer1'])
df['DAY_OF_WEEK_summer1'] = np.where(df['DAY_OF_WEEK_summer1'].isnull(), df['DAY_OF_WEEK_summer3'], df['DAY_OF_WEEK_summer1'])

暫無
暫無

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

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