我显示了数据框的第一行,其中AdminStrata
表示国家的省份(数据框包含多个国家):
我将获得以下数据帧/输出:
在实践中,我想找出每个国家和每个AdminStrata
的时间序列间隔(及其长度),而不中断(没有NaN值),重点放在“Metric”列上。你知道吗
我已经使用以下代码获得了所需的输出,但是我会以更优雅的方式使用Pandas函数(例如没有for循环)。你知道吗
df_temporal_series = []
for country in df.Country.unique():
sub_df = df[df.Country == country]
sub_df = sub_df.groupby(["Datetime", "AdminStrata"]).mean()["Metric"].unstack()
for adminStrata in sub_df:
agged = sub_df[adminStrata].loc[sub_df[adminStrata].first_valid_index():sub_df[adminStrata].last_valid_index()]
agged = agged.groupby(sub_df[adminStrata].isnull().cumsum()).agg(Start = pd.Series.first_valid_index, Stop = pd.Series.last_valid_index, Length = "count").dropna()
agged.insert(0, "AdminStrata", adminStrata)
agged.insert(0, "Country", country)
df_temporal_series.append(agged)
df_temporal_series = pd.concat(df_temporal_series)
df_temporal_series.reset_index(drop = True, inplace = True)
有可能吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐