作者gene50814 (genechen)
看板Python
标题[问题]groupby 做逻辑判断?
时间Sun May 3 16:46:50 2020
各位大大好
小弟有个时间序列的资料
范例如下:
https://i.imgur.com/1Z6Or19.jpg
小弟想做的事是要算每个月各公司市值的中位数 若公司大於等於中位数则新的column给
值’big’,反之则’small’
想完成的感觉如下图:
https://i.imgur.com/1urJNVp.jpg
小弟想应该是要先把date groupby起来,但不知道该如何做後续的逻辑判断
请各位大大指教了 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.240.146.107 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1588495612.A.C6E.html
1F:推 yuasa: 你用pandas吗?这两个表除了多了B/S栏差在哪?你的B/S决定的 05/03 20:09
2F:→ yuasa: 条件是? 05/03 20:09
3F:推 TitanEric: 楼上你没看内文齁 05/03 22:27
4F:→ gene50814: 是用pandas的 後来我是用join把groupby之後的series加 05/04 01:37
5F:→ gene50814: 到原本的df再做逻辑判断 不知道有没有更好的作法? 05/04 01:37
6F:推 moodoa3583: 如果是用data[B/S] = data[MarketValue].apply(lambda 05/04 12:52
7F:→ moodoa3583: x:True if x >np.median(data[MarketValue]) else Fa 05/04 12:52
8F:→ moodoa3583: lse) 呢? 05/04 12:52
9F:→ moodoa3583: *>= 05/04 12:53
10F:推 lycantrope: for date, tempdf in data.groupby("date"): 05/12 10:05
11F:→ lycantrope: BS = tempdf["Price"] > tempdf["Price"].median() 05/12 10:05
12F:→ lycantrope: df.loc[BS.index,"B/S"] = BS 05/12 10:06
13F:→ lycantrope: 打错df改成date data.loc[BS.index,"BS"] = BS 05/12 10:06
14F:→ lycantrope: 把groupby 当iter for loop 判断逻辑直接输入data 05/12 10:07