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

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

如何根據多個條件確定行中的值是否有效?

如何根據多個條件確定行中的值是否有效?

素胚勾勒不出你 2023-06-20 10:15:35
我在數據框中有一些數據,想檢查Year是否有效,如果存在于 start_year 和 end_year 之間Year      start_year      end_year    2010        2012            20142013        2012            20152015        2015            20162009        2010            20122017        2016            2019我想再添加一列(有效/無效)來指定年份是否有效Year      start_year      end_year     valid/invalid 2010        2012            2014         invalid2013        2012            2015         valid 2015        2015            2016         valid2009        2010            2012         invalid 2017        2016            2019         valid 我們如何使用 python 實現這一目標?
查看完整描述

3 回答

?
DIEA

TA貢獻1820條經驗 獲得超3個贊

你可以np.where使用Series.between

df["valid/invalid"] = np.where(df.Year.between(df.start_year,df.end_year),'valid','invalid')

df

? ?Year? start_year? end_year valid/invalid

0? 2010? ? ? ? 2012? ? ? 2014? ? ? ?invalid

1? 2013? ? ? ? 2012? ? ? 2015? ? ? ? ?valid

2? 2015? ? ? ? 2015? ? ? 2016? ? ? ? ?valid

3? 2009? ? ? ? 2010? ? ? 2012? ? ? ?invalid

4? 2017? ? ? ? 2016? ? ? 2019? ? ? ? ?valid


查看完整回答
反對 回復 2023-06-20
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

如果您想堅持只使用 Pandas,請嘗試使用以下解決apply方案replace-


df['valid/invalid'] = df.apply(lambda x: (x.Year>=x.start_year) and (x.Year<=x.end_year), axis=1).replace({True:'Valid',False:'Invalid'})

   Year  start_year  end_year valid/invalid

0  2010        2012      2014       Invalid

1  2013        2012      2015         Valid

2  2015        2015      2016         Valid

3  2009        2010      2012       Invalid

4  2017        2016      2019         Valid

apply如果年份介于開始年份和結束年份之間(包括兩端),第一步會讓您判斷為真或假。第二步將Trueand替換False為ValidorInvalid字符串。


查看完整回答
反對 回復 2023-06-20
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

查看np.where


df['v/inv'] = np.where((df.Year>=df.start_year) & (df.Year<=df.end_year), 'valid','invalid')

df

Out[360]: 

   Year  start_year  end_year    v/inv

0  2010        2012      2014  invalid

1  2013        2012      2015    valid

2  2015        2015      2016    valid

3  2009        2010      2012  invalid

4  2017        2016      2019    valid


查看完整回答
反對 回復 2023-06-20
  • 3 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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