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

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

如何保存與pandas中的特定條件匹配的先前結果

如何保存與pandas中的特定條件匹配的先前結果

哆啦的時光機 2023-08-15 17:23:59
我想知道如何保存之前的結果,該結果與后面的每一行中的某些條件(df['condition'])相匹配。我知道如何使用 for 循環來做到這一點,但我知道在使用 pandas 時應該避免它們。下面是一個例子。列 df['desired_result] 代表我想要實現的目標。import pandas as pdimport numpy as npdates = pd.date_range('1/1/2000', periods=10)values = np.arange(10.0, 20.0, 1.0)data = {'date': dates, 'value': values}df = pd.DataFrame.from_dict(data)df['condition'] = [False, False, True, True, False, True, False, False, True, False]df_valid = df[df['condition']]df['desired_result'] = [np.nan, np.nan, 12, 13, 13, 15, 15, 15, 18, 18]
查看完整描述

1 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

# use df.where based on your condition and assign it to a new col

# Anywhere column condition is True return the value else return NaN

# then add ffill to forward fill NaN values


df['r'] = df['value'].where(df['condition'] == True, np.nan).ffill()


        date  value  condition  desired_result     r

0 2000-01-01   10.0      False             NaN   NaN

1 2000-01-02   11.0      False             NaN   NaN

2 2000-01-03   12.0       True            12.0  12.0

3 2000-01-04   13.0       True            13.0  13.0

4 2000-01-05   14.0      False            13.0  13.0

5 2000-01-06   15.0       True            15.0  15.0

6 2000-01-07   16.0      False            15.0  15.0

7 2000-01-08   17.0      False            15.0  15.0

8 2000-01-09   18.0       True            18.0  18.0

9 2000-01-10   19.0      False            18.0  18.0


查看完整回答
反對 回復 2023-08-15
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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