![](/img/trans.png)
[英]Python Pandas - filter pandas dataframe to get rows with minimum values in one column for each unique value in another column
[英]Pandas: Filter datefield for each unique cell values in a column in dataframe
我有一個 dataframe df
如下
YearMonth CustID Values
201901 12231 400
201902 12231 233
201903 12231 244
201904 12231 355
201901 12235 114
201902 12235 133
201903 12235 144
201904 12235 205
在上面,我有每個月( YearMonth
)的CustID
及其對應的值( Values
)。
客觀的:
我想得到一個 dataframe ,其中每個客戶的數據將從201903
即 2019 年 1 月到201901
年即 2019 年 3 月。所以結果df
看起來像
YearMonth CustID Values
201901 12231 400
201902 12231 233
201903 12231 244
201901 12235 114
201902 12235 133
201903 12235 144
我已經使用pd.to_datetime()
將YearMonth
轉換為datetime
時間。
上面的dataframe怎么得到? 我應該先過濾然后groupby(['CustID'])
嗎? 還是有其他出路?
簡單地說:
df = df[(df.YearMonth.ge(201901))&(df.YearMonth.le(201903))]
將pd.to_datetime
與dt.month
訪問器和series.between()
一起使用:
df[pd.to_datetime(df.YearMonth,format='%Y%m').dt.month.between(1,3)]
YearMonth CustID Values
0 201901 12231 400
1 201902 12231 233
2 201903 12231 244
4 201901 12235 114
5 201902 12235 133
6 201903 12235 144
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.