繁体   English   中英

如何比较 pandas 中不同行和不同列中的两个值

[英]How to compare two values in different rows AND different columns in pandas

我目前正在比较同一行但不同列上的两个值,但我需要它来比较一个值与前一行。

例如:我需要将索引 0 处行的“关闭”列与索引 1 处行的“打开”列进行比较。

df['HigherLower'] = 'No Change'

for index, row in df.iterrows():
    if row['Open'] < row['Close'] :
        df['HigherLower'] = df['HigherLower'].replace(['No Change'],'Lower')
    else:
        df['HigherLower'] = df['HigherLower'].replace(['No Change'],'Higher')

使用np.where

import pandas as pd
import numpy as np

df = pd.DataFrame({'Open': [10, 20, 30], 'Close': [5, 25, 15]})

df['HigherLower'] = np.where(df['Open'].shift() < df['Close'], 'Lower', 'Higher')
print(df)

# Output:
   Open  Close HigherLower
0    10      5      Higher
1    20     25       Lower
2    30     15      Higher

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM