【发布时间】:2022-01-25 00:12:09
【问题描述】:
我有一个包含几列的数据框。我按“名称”分组并按“日期1”排序。数据集的一个子集如下:-
data_ = {'Name': ['Alfie', 'Alfie', 'Alfie', 'Alfie','George','George','Radar','Radar','Radar','Radar'],'Date1': ['2009-03-26', '2014-12-23', '2016-03-18', '2021-08-31','2014-01-23','2020-02-20','2008-05-24','2010-06-22','2015-09-10','2017-03-11'], 'Date2': [np.NaN, '2016-03-16', np.NaN, np.NaN,np.NaN,np.NaN,'2010-03-23',np.NaN,'2016-09-12',np.NaN]
, 'Difference': [0, 0, '2 days', 0,0,0,0,'91 days',0,'181 days']}
# Create DataFrame.
df_test = pd.DataFrame(data_)
df_test["Date1"] = pd.to_datetime(df_test["Date1"],format="%Y-%m-%d")
df_test["Date2"] = pd.to_datetime(df_test["Date2"],format="%Y-%m-%d")
我想计算“差异”列中的值。这是下一个“Date1”值与按“名称”分组的非空“Date2”之间的差异。如果 'Date2' 为 null,则可以将差值设置为 0。如何在 Pandas 中进行计算?是否应该像按函数检查分组中的每一行,然后比较两列中的日期?
【问题讨论】:
标签: python pandas dataframe group-by