【发布时间】:2019-09-23 07:21:21
【问题描述】:
我认为这应该相对容易,但我是菜鸟!
需要在新的 pandas 列(称为此列 B)中返回结果,该列基于 A 列中以下行的结果。
请打印以下代码
import pandas as pd
df = pd.DataFrame({'A': ['BUY', 'BUY', 'HODL', 'SELL', 'HODL', 'HODL', 'BUY', 'SELL', 'SELL', 'BUY', 'BUY', 'HODL', 'SELL', 'SELL', 'SELL', 'HODL', 'SELL', 'SELL','BUY']})
print(df)
我需要一个新列(B 列)来根据以下内容返回结果。
从 pandas 数据框的底部开始。 A 列中的最后一个单元格(即 A18 = 'BUY')总是可以为 B 列中的最后一个单元格返回相同的结果。
A 列(即A17)的下一行是“卖出”。我认为这是一个变化,因此单元格 B17 现在也应该是“卖出”
A 列中的下一行(即A16)再次是“卖出”。由于这与 A17 没有任何变化,因此单元格 B16 现在应该是“NA”
A 列(即A15)中的下一行是“HODL”。所有“HODL”单元格应始终反映为 B 列中的“HODL”单元格
如果单元格 A15 再次为“卖出”,则在 B 列中将应用另一个“NA”。
“卖出”单元格的相同原则适用于“买入”单元格
提供以下 df 仅用于提供预期结果的可视化:
import pandas as pd
df = pd.DataFrame({'A': ['BUY', 'BUY', 'HODL', 'SELL', 'HODL', 'HODL', 'BUY', 'SELL', 'SELL', 'BUY', 'BUY', 'HODL', 'SELL', 'SELL', 'SELL', 'HODL', 'SELL', 'SELL','BUY'], 'B': ['NA', 'BUY', 'HODL', 'SELL', 'HODL', 'HODL', 'BUY', 'NA', 'SELL', 'NA', 'BUY', 'HODL', 'NA', 'NA', 'SELL', 'HODL', 'NA', 'SELL','BUY']})
print(df)
【问题讨论】: