將四分位合并到每個id的月度數據中,同時在季度的第一個月填充其他列

我試圖通過用前面的行值填充其他列,將pandas中每個唯一id的四分位數轉換為月份。我看過這個Pandas:為缺失的月份添加數據,但它只針對一個id(它不適用于多個id),如果我們有多個id,我們怎么能做同樣的事情?例如,我有這樣一個數據

import numpy as np
import pandas as pd
index = [0,1,2,3]
id = pd.Series([1,1,2,2],index= index)
price = pd.Series([20,41,61,68],index= index)
date_month = pd.Series(['2021-01','2021-04','2021-01','2021-04'],index= index)
df = pd.DataFrame(id,columns = ["id"])
df["price"] =price
df['date_month'] = date_month
df

但我希望輸出如下

index = [0,1,2,3,4,5, 6, 7,8,9,10,11]
id = pd.Series([1,1,1,1,1,1,2, 2, 2,2,2,2],index= index)
price = pd.Series([20,20,20, 41,41,41, 61,61, 61, 68,68,68],index= index)
date_month = pd.Series(['2021-01', '2021-02','2021-03', '2021-04', '2021-05','2021-06','2021-01', '2021-02', '2021-03','2021-04', '2021-05','2021-06'],index= index)
df = pd.DataFrame(id,columns = ["id"])
df["price"] =price
df['date_month'] = date_month
df 

僅供參考,還有其他列,我們希望用每個季度第一個月的值填充。

? 最佳回答:

首先,創建一個日期范圍數據框,其中包含從最小月份到最大月份的月份。

import datetime

date_month = pd.to_datetime(df["date_month"])
min_date = date_month.min()
max_date = date_month.max() + pd.tseries.offsets.QuarterEnd()
date_range_df = pd.DataFrame(pd.date_range(min_date, max_date, freq="M"), columns=["date"])
date_range_df

然后,基于date_range_df創建一個季度月映射數據幀

def quarter2month(quarter):
    return (quarter -1) * 3 + 1

quarter_month_map_df = date_range_df.assign(
    date_month = date_range_df["date"].map(lambda x:datetime.datetime.strftime(x,"%Y-%m")),
    date_quarter = date_range_df["date"].map(lambda x:f"{x.year}-{quarter2month(x.quarter):02}"),
).drop("date",axis=1)

quarter_month_map_df

reuslt將是

 date_month date_quarter
0 2021-01 2021-01
1 2021-02 2021-01
2 2021-03 2021-01
3 2021-04 2021-04
4 2021-05 2021-04
5 2021-06 2021-04

最后,您可以將quarter_month_map_df與原始df合并

pd.merge(df.rename({"date_month": "date_quarter"}, axis=1),
     quarter_month_map_df, on='date_quarter', how="left")
主站蜘蛛池模板: 国产亚洲情侣一区二区无码AV| 日韩好片一区二区在线看| 亚洲av无码一区二区三区网站| 蜜桃无码AV一区二区| 日韩AV无码一区二区三区不卡毛片| 人妻在线无码一区二区三区| 国产a∨精品一区二区三区不卡| www亚洲精品少妇裸乳一区二区 | 色噜噜狠狠一区二区三区| 一区二区三区内射美女毛片| 人妻在线无码一区二区三区| 亚洲高清一区二区三区 | 日韩福利视频一区| AV无码精品一区二区三区| 无码国产伦一区二区三区视频| 夜夜添无码试看一区二区三区 | 一区二区在线视频| 成人免费区一区二区三区| 国产亚洲自拍一区| 国产一区二区视频在线观看| 一区二区不卡久久精品| 精品一区二区三区电影| 国产视频福利一区| 精品在线一区二区| 国产激情一区二区三区 | 亚洲国产成人久久一区WWW| 无码毛片一区二区三区中文字幕| 国产人妖视频一区二区破除| 波多野结衣精品一区二区三区| 免费看无码自慰一区二区| 国产精品亚洲一区二区三区在线观看| 国产av一区最新精品| 国产一区风间由美在线观看| 日本福利一区二区| 亚洲国产综合精品一区在线播放| 中文字幕不卡一区| 亚洲一区二区三区夜色| 国产精品一区二区久久精品涩爱| 日韩一区二区三区射精| 一区二区三区视频免费| 久久一区二区三区精品|