【发布时间】:2020-07-30 02:15:22
【问题描述】:
我有以下数据框:
High Low ... Adj Close bcc
Date ...
2018-01-02 2695.889893 2682.360107 ... 2695.810059 False
2018-01-03 2714.370117 2697.770020 ... 2713.060059 False
2018-01-04 2729.290039 2719.070068 ... 2723.989990 False
2018-01-05 2743.449951 2727.919922 ... 2743.149902 False
2018-01-08 2748.510010 2737.600098 ... 2747.709961 True
... ... ... ... ...
2020-04-09 2818.570068 2762.360107 ... 2789.820068 False
2020-04-13 2782.459961 2721.169922 ... 2761.629883 False
2020-04-14 2851.850098 2805.100098 ... 2846.060059 False
2020-04-15 2801.879883 2761.540039 ... 2783.360107 False
2020-04-16 2806.510010 2764.320068 ... 2778.219971 False
每当密件抄送列是 True 时,我如何添加列 Low 的下 3 个值并将这些数据保存到不同的数据框中?
【问题讨论】:
-
你先过滤,所以
df.iloc[df['bcc'], 'Low'].sum() -
看起来这里已经有了答案stackoverflow.com/questions/37947641/…
-
@WillemVanOnsem 你的意思是
df.iloc[df['bcc'], 'Low'].sum(3)? -
@WillemVanOnsem 我得到了
ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types -
@WillemVanOnsem
df.loc[df['bcc'], 'Low'].sum(),而不是iloc。但我认为这不是 OP 需要的,因为它无法处理next 3 values。
标签: python-3.x pandas boolean