将该值与 pandas 数据帧中该值之前的值进行比较

Comparing the value with a value before it in the pandas dataframe

提问人:Hannah 提问时间:11/13/2023 更新时间:11/13/2023 访问量:23

问:

我有一个 DataFrame df:

开盘 最高价 最低价 收盘价
187100 187100 187100 188100 188000 188000 188000 188000 188000
188000
188000 188000 188000 188000 188000 188000 188000 188000 188000

.

从上面的交易历史中,创建一个信息列,指示每个交易日的收盘价与前一天的收盘价相比有所增加(值 1)、减少(值 -1)、等于(值 0)。

pandas DataFrame 条件语句

评论

0赞 Adrien Riaux 11/13/2023
请提供所需结果的示例,以帮助贡献者做出回应。
0赞 OCa 11/14/2023
Shift、diff...这必须是重复的,并且没有显示先前为解决问题所做的努力
0赞 Community 11/14/2023
请编辑问题,将其限制为具有足够详细信息的特定问题,以确定适当的答案。

答:

0赞 Adrien Riaux 11/13/2023 #1

您可以使用 pandas 中的方法,然后将结果映射到语句。diffif else

data = {'close': [187100, 188000, 188000, 187100, 188100]}
df = pd.DataFrame(data)

df['info'] = df['close'].diff()
df['info'] = df['info'].map(lambda x: 1 if x > 0 else -1 if x < 0 else 0)

print(df)

>>> close  info
0  187100     0
1  188000     1
2  188000     0
3  187100    -1
4  188100     1

请注意,info 列的第一行是 NaN,因为没有什么可比较的,因此在与语句映射时将其设置为 0。if else