Python 如何从数据集中的多个列中选择最近的日期?
我有一个5列的数据框。一列包含Python 如何从数据集中的多个列中选择最近的日期?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个5列的数据框。一列包含科目编号,另外四列包含日期(计费,计费1,计费2,计费3)。我需要创建一个新列,其中包含这四列之间的最近日期 如何从四个不同的列中选择最近的日期 dates_dict = {'Account':{0: '1', 1: '2', 2: '3', 3: '4', 4: '5'},'Billing':{0: np.nan, 1: Timestamp('2014-06-23 00:00:00'), 2: Timestamp('2014-06-23 00:00:00'), 3
科目
编号,另外四列包含日期(计费
,计费1
,计费2
,计费3
)。我需要创建一个新列,其中包含这四列之间的最近日期
如何从四个不同的列中选择最近的日期
dates_dict = {'Account':{0: '1', 1: '2', 2: '3', 3: '4', 4: '5'},'Billing':{0: np.nan, 1: Timestamp('2014-06-23 00:00:00'), 2: Timestamp('2014-06-23 00:00:00'), 3: Timestamp('2014-06-23 00:00:00'), 4: np.nan}, 'Billing 1': {0: np.nan, 1: Timestamp('2015-06-23 00:00:00'), 2: Timestamp('2014-06-23 00:00:00'), 3: Timestamp('2015-06-23 00:00:00'), 4: np.nan}, 'Billing 2': {0: np.nan, 1: Timestamp('2016-06-23 00:00:00'), 2: Timestamp('2015-06-23 00:00:00'), 3: Timestamp('2016-06-23 00:00:00'), 4: np.nan}, 'Billing 3': {0: np.nan, 1: Timestamp('2017-06-23 00:00:00'), 2: Timestamp('2016-06-23 00:00:00'), 3: Timestamp('2017-06-23 00:00:00'), 4: np.nan}}
dates_df = pd.DataFrame(dates_dict)
只需将max函数按列方式应用于列的子集:
cols = [x for x in dates_df.columns if 'billing' in x.lower()]
dates_df['most_recent_date'] = dates_df[cols].max(axis=1)
用于:
无法创建
日期\u df
<代码>名称错误:名称“时间戳”未定义@MayankPorwal,请尝试从熊猫导入时间戳将其更改为“计费”
In [1183]: cols = dates_df.filter(like='Billing').columns
In [1185]: dates_df['max_date'] = dates_df[cols].max(1)
In [1186]: dates_df
Out[1186]:
Account Billing Billing 1 Billing 2 Billing 3 max_date
0 1 NaT NaT NaT NaT NaT
1 2 2014-06-23 2015-06-23 2016-06-23 2017-06-23 2017-06-23
2 3 2014-06-23 2014-06-23 2015-06-23 2016-06-23 2016-06-23
3 4 2014-06-23 2015-06-23 2016-06-23 2017-06-23 2017-06-23
4 5 NaT NaT NaT NaT NaT