gpt4 book ai didi

python - 根据前几行在 Pandas 中生成列值

转载 作者:太空宇宙 更新时间:2023-11-04 07:50:41 24 4
gpt4 key购买 nike

假设我定期进行温​​度测量并将值记录在 Pandas Dataframe 中

day   temperature [F]
0 89
1 91
2 93
3 88
4 90

现在我想创建另一个列,当且仅当前两个值高于某个水平时,该列才设置为 1。在我的场景中,如果两个连续值高于 90,我想创建一个值为 1 的列,从而产生

day   temperature        Above limit?
0 89 0
1 91 0
2 93 1
3 88 0
4 91 0
5 91 1
6 93 1

尽管进行了一些 SO 和 Google 挖掘,但尚不清楚我是否可以在 for 循环中使用 iloc[x]、loc[x] 或其他东西?

最佳答案

您正在寻找 shift在 Pandas 中发挥作用。


import io
import pandas as pd

data = """
day temperature Expected
0 89 0
1 91 0
2 93 1
3 88 0
4 91 0
5 91 1
6 93 1
"""

data = io.StringIO(data)
df = pd.read_csv(data, sep='\s+')

df['Result'] = ((df['temperature'].shift(1) > 90) & (df['temperature'] > 90)).astype(int)

# Validation
(df['Result'] == df['Expected']).all()

关于python - 根据前几行在 Pandas 中生成列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55285689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com