我有一个带有间隔天数和计数天数的数据图:
天 | |
---|---|
88天 | 51天 |
54天 | 48天 |
94天 | 47天 |
292天 | 43天 |
291天 | 43天 |
428天 | 1 |
406天 | 1 |
419天 | 1 |
397天 | 1 |
尝试:
df["Day"] = df["Day"].str.split().str[0].astype(int)
tmp = pd.cut(df["Day"], [0, 50, 150, 250, 350, 450])
x = df.groupby(tmp)["Count"].sum().to_frame().T.reset_index(drop=True)
x.columns = [f"{c.right} days - {c.left} days" for c in x.columns]
print(x[x.columns[::-1]])
打印:
450 days - 350 days 350 days - 250 days 250 days - 150 days 150 days - 50 days 50 days - 0 days
0 4 86 0 146 0
您指定的频率无效。您应该使用'30D'
而不是'30 days'
。
例如:
import pandas as pd
mydata = {'Day':['88 days','54 days','94 days','292 days','291 days','428 days','406 days','419 days','397 days'],'Count': [51, 48, 47, 43, 43, 1, 1, 1, 1] }
df=pd.DataFrame(data=mydata)
df.index = pd.to_timedelta(df['Day'].astype(str))
df.resample('30D', axis=0).sum()