在Python中,我有一个带有“日期”列的DataFrame(格式例如2020-06-26)。该列以降序排列:2020-06-26、2020-06-25、2020-06-24 ... 另一栏“评论”由网站的文字评论组成。我的数据可以在给定的日期有多个评论,或者在另一个日期没有评论。我想在“日期”列中找到缺少的日期。然后,对于每个缺少的日期,在“格式='%Y-%m-%d'”中添加一行日期,并在“评论”上添加一个空评论,以便对其进行绘图。我该怎么办?
from datetime import date, timedelta
d = data['Date']
print(d[0])
print(d[-1])
date_set = set(d[-1] + timedelta(x) for x in range((d[0] - d[-1]).days))
missing = sorted(date_set - set(d))
missing = pd.to_datetime(missing, format='%Y-%m-%d')
idx = pd.date_range(start=min(data.Date), end=max(data.Date), freq='D')
#tried this
data = data.reindex(idx, fill_value=0)
data.head()
#Got TypeError: 'fill_value' ('0') is not in this Categorical's categories.
#also tried this
df2 = (pd.DataFrame(data.set_index('Date'), index=idx).fillna(0) + data.set_index('Date')).ffill().stack()
df2.head()
#Got ValueError: cannot reindex from a duplicate axis
答案 0 :(得分:0)
这是我的代码:
for i in range(len(df)):
if i > 0:
prev = df.loc[i-1]["Date"]
current =df.loc[i]["Date"]
for a in range((prev-current).days):
if a > 0:
df.loc[df["Date"].count()] = [prev-timedelta(days = a), None]
df = df.sort_values("Date", ascending=False)
print(df)