【问题标题】:How can I change logic from (False to True) based on the 1st column and (True to False) based on the 2nd culumn如何根据第一列将逻辑从(假到真)和基于第二列的逻辑(真到假)更改
【发布时间】:2023-02-10 11:37:30
【问题描述】:
这个想法是在由 2 列调节的 True 和 False 集合之间切换。
例如
| Column A |
Column B |
Column C |
| False |
False |
False |
| False |
False |
False |
| True |
False |
True |
| False |
False |
True |
| True |
False |
True |
| True |
False |
True |
| True |
False |
True |
| False |
False |
True |
| False |
True |
False |
| False |
True |
False |
| False |
False |
False |
| False |
False |
False |
| False |
True |
False |
| True |
False |
True |
| False |
False |
True |
| False |
False |
True |
我想生成的是“C 列”。
“A 列”将“C 列”从(“False”更改为“True”)。
“B 列”将“C 列”从(“True”更改为“False”)。
由第一个“真”触发
【问题讨论】:
标签:
python
pandas
dataframe
numpy
pandas-ta
【解决方案1】:
我终于通过使用 cumsum() 得到了这个问题的答案。
df['Column A'] = ....
df['Column B'] = ....
df["Cumsum1"] = df['Column A'].cumsum()
df["Cumsum2"] = df["Cumsum1"].where(df_ohlcv["Column B"]).ffill().fillna(0).astype(int)
df_ohlcv["Column C"] = df_ohlcv["Cumsum1"]-df_ohlcv["Cumsum2"]
df_ohlcv["Column C"] = df_ohlcv["Column C"].replace(df_ohlcv["Column C"].values, 1).where(df_ohlcv["Column C"]!=0, 0).astype(bool)
如果有人有更简单的解决方案,请分享。谢谢