在熊猫中将一列替换为另一列

我的数据框看起来像 -


date           age        english        date2           value

2020-01-08      29          55            NaT              5

2020-01-22      22          45            NaT              0

2020-01-08      29          55         2020-01-08          5

2020-01-18      43          75         2020-05-18          8

NaT             NaN         NaN        2019-02-11          3

我希望我的数据框看起来像 -


date           age        english        value

2020-01-08      29          55            5

2020-01-22      22          45            0

2020-01-08      29          55            5

2020-05-18      43          75            8

2019-02-11       0           0            3

如何在熊猫中做到这一点


波斯汪
浏览 79回答 2
2回答

青春有我

我猜你想要一个具有最大日期值的日期列max(date,date2)df:    date        age     english date2   value0   2020-01-08  29.0    55.0    NaN         51   2020-01-22  22.0    45.0    NaN         02   2020-01-08  29.0    55.0    2020-01-08  53   2020-01-18  43.0    75.0    2020-05-18  84   NaN         NaN     NaN     2019-02-11  3df['date'] = pd.to_datetime(df['date'])df['date2'] = pd.to_datetime(df['date2'])df['date'] = df[['date','date2']].max(axis=1)df.drop('date2', axis=1, inplace=True)df.fillna(0,axis=1,inplace=True)df:    date        age     english value0   2020-01-08  29.0    55.0    51   2020-01-22  22.0    45.0    02   2020-01-08  29.0    55.0    53   2020-05-18  43.0    75.0    84   2019-02-11  0       0       3 编辑:如果您只想替换为date2如果存在:import numpy as npdf['date'] = pd.to_datetime(df['date'])df['date2'] = pd.to_datetime(df['date2'])df['date'] = np.where(df['date2'].isnull(),df['date'],df['date2'])df.drop('date2', axis=1, inplace=True)df.fillna(0,axis=1,inplace=True)

HUWWW

import numpy as np df['date'] = np.where(df['date'].isna(), df['date2'], df['date']) df = df.drop('date2', axis=1) df = df.fillna(0)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python