我有此数据:
sample = pd.DataFrame({'CompanyID': np.random.choice(['1', '2', '3', '4', '5', '6'],50),
'Date': np.random.choice(pd.Series(pd.date_range('2018-01-01', freq='D', periods=180)), 50),
'Credits': np.random.uniform(0,1000,50),
'Amount': np.random.uniform(0, 1000, 50),
}, columns=['Date', 'CompanyID', 'Credits', 'Amount'])
sample = sample.sort_values('CompanyID')
sample['Days'] = sample.Date.diff().map(lambda x: abs(x.days))
sample
我正在寻找每个公司每次购买一揽子信用额之间的天数。但是,每个公司的最新行都必须具有Days
的{{1}}值,而不是为公司购买的最新包装与从公司购买的最旧包装之间的日期差值数据框中的上方。
我的问题:如何在此数据帧中找到第一个出现的CompanyID(最好是能够传递唯一的CompanyID的列表)并将NaN
值替换为{{1} }?
答案 0 :(得分:0)
Idx = sample.drop_duplicates(subset ='CompanyID',keep =“ first”) sample ['Date'] [sample.index.isin(list(Idx.index)] = None