亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pandas:如何找到過零的值?

Pandas:如何找到過零的值?

SMILET 2023-07-11 14:27:13
這是我的數據框      Date     Time      Value16.02.2020 21:00:00    0.0501216.02.2020 22:00:00    0.0428516.02.2020 23:00:00    0.0355917.02.2020  0:00:00    0.0283317.02.2020  1:00:00    0.0210717.02.2020  2:00:00    0.0138017.02.2020  3:00:00    0.0065417.02.2020  4:00:00   -0.0007317.02.2020  5:00:00   -0.0079917.02.2020  6:00:00   -0.0152617.02.2020  7:00:00   -0.0225217.02.2020  8:00:00   -0.0297817.02.2020  9:00:00   -0.0370417.02.2020 10:00:00   -0.0443017.02.2020 11:00:00   -0.05156如何找到值過零的行?我可以通過迭代來做到這一點:如果當前值 > 0 且先前值 < 0,或當前值 < 0 且先前值 > 0,所以它是過零的。但我的數據框非常大。如何在不迭代的情況下做到這一點?
查看完整描述

2 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

IIUC,你可以嘗試np.sign+series.diff

out = df[np.sign(df['Value']).diff().fillna(0).ne(0)].copy()


查看完整回答
反對 回復 2023-07-11
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

我們可以創建蒙版來制作這個過濾器shift


mask1 = (df['Value'] < 0)

mask2 = (df['Value'] > 0).shift()


mask3 = (df['Value'] > 0)

mask4 = (df['Value'] < 0).shift()


df.loc[(mask1 & mask2) | (mask3 & mask4)]

#output:

    Date        Time    Value

7   17.02.2020  4:00:00 -0.00073


查看完整回答
反對 回復 2023-07-11
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號