我有一个panadas数据框,它基本上是特定日期发生情况的汇总视图。但是,四个月的窗口中并未包含所有的天数。 例如,
dates = ['2019-02-27', '2019-02-16', '2019-02-01', '2019-01-15']
count_s = [2,3,4,5]
df = pd.DataFrame({'dates': dates, 'count': count_s})
df["dates_ind"] = pd.to_datetime(df["dates"], format="%Y-%m-%d")
df.index = pd.DatetimeIndex(df["dates_ind"])
我需要创建一个全天(相对于今天为4个月)的新数据框。如果日期在两个数据框(new和df
)之间相对应,则需要创建一个新的1或0列。如果它存在于df
中,则应标记为1否则为0。
答案 0 :(得分:1)
使用- name: Delete launch configuration
sudo: yes
command: >
aws autoscaling delete-launch-configuration
--region {{ asg.region }}
--launch-configuration-name {{ asg.launch_configuration.name }}_{{ now }}
创建new_df
,然后检查索引是否在其他pd.date_range
中。 DataFrame
为您提供日历月减法,当月份的天数不同时,日历月减法不会越过月份边界。
pd.offsets.DateOffset(months=4)
import pandas as pd
today = pd.to_datetime('today').normalize()
df_new = pd.DataFrame(index=pd.date_range(today-pd.offsets.DateOffset(months=4),
today, freq='D'))
df_new['exist'] = df_new.index.isin(df.index).astype(int)
df_new
答案 1 :(得分:0)
col = df.dates.apply(lambda x: 1 if x in dates else 0)
您可以用数据框列名称替换'col'。
相对于4个月的时间,您可以使用pd.offsets.MonthBegin,然后使用结束独家每日日期范围:
dts = pd.date_range(month_start, month_start + pd.offsets.MonthBegin(1), closed="left")
请注意,month_start应该是datetime.datetime,而不是字符串。