用其他两列替换一列中的 NaN 值
Replace NaN values in one column from two other columns
我有一个由三个数据帧连接在一起的数据帧。我有变量表示它们来自哪个数据框。例如,DAY_OF_WEEK_summer1
、DAY_OF_WEEK_summer2
和 DAY_OF_WEEK_summer3
。一个值只能存在于这三列之一中,我想用 summer2 或 summer3 列中的值填充 DAY_OF_WEEK_summer1
中的 NaN
值。总共有 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'])
我有一个由三个数据帧连接在一起的数据帧。我有变量表示它们来自哪个数据框。例如,DAY_OF_WEEK_summer1
、DAY_OF_WEEK_summer2
和 DAY_OF_WEEK_summer3
。一个值只能存在于这三列之一中,我想用 summer2 或 summer3 列中的值填充 DAY_OF_WEEK_summer1
中的 NaN
值。总共有 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'])