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

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

如何將 pandas 列拆分為帶有字符串和整數的兩列

如何將 pandas 列拆分為帶有字符串和整數的兩列

江戶川亂折騰 2023-10-06 19:22:03
我希望將日期范圍列分成兩列,開始日期和結束日期。然而它的分割似乎不起作用,因為它不識別“-”。有什么建議嗎?我嘗試使用''' ebola1 = pd.DataFrame(ebola['日期范圍'].str.split('-',1).to_list(),columns = ['開始日期','結束日期']) '''但是,它返回以下內容:因此,(1) 它無法識別“-”,(2) 如何區分“1976 年 6 月至 11 月”和“2001 年 10 月至 2002 年 3 月”,(3) 如何在現有列中包含新列桌子?謝謝您的幫助!
查看完整描述

1 回答

?
倚天杖

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

而是使用了,因此與for一起-使用:Series.str.splitexpand=TrueDataFrame

data = ['Jun–Nov 1976', 'Sep–Oct 1976', 'Jun 1977', 'Jul–Oct 1979', 'Nov 1994', 'Nov 1994–Feb 1995', 'Jan–Jul 1995', 'Jan–Mar 1996', 'Jul 1996–Jan 1997', 'Oct 2000–Feb 2001', 'Oct 2001–Mar 2002', 'Oct 2001–Mar 2002', 'Oct 2001–Mar 2002', 'Oct 2001–Mar 2002', 'Oct 2001–Mar 2002', 'Dec 2002–Apr 2003', 'Dec 2002–Apr 2003', 'Dec 2002–Apr 2003', 'Oct–Dec 2003', 'Apr–Jun 2004'] 


ebola = pd.DataFrame(data, columns=['Date range'])

ebola1 = ebola['Date range'].str.split('–', 1, expand=True)

ebola1.columns = ['start date','end date']

然后numpy.where添加來自end dateby的年份Series.str.extract,但前提是在start date測試的列中不存在Series.str.contains


mask = ebola1['start date'].str.contains('\d')

years = ebola1['end date'].str.extract('(\d+)', expand=False)

ebola1['start date'] = np.where(mask, 

                                ebola1['start date'], 

                                ebola1['start date'] + ' ' + years)

print (ebola1)


   start date  end date

0    Jun 1976  Nov 1976

1    Sep 1976  Oct 1976

2    Jun 1977      None

3    Jul 1979  Oct 1979

4    Nov 1994      None

5    Nov 1994  Feb 1995

6    Jan 1995  Jul 1995

7    Jan 1996  Mar 1996

8    Jul 1996  Jan 1997

9    Oct 2000  Feb 2001

10   Oct 2001  Mar 2002

11   Oct 2001  Mar 2002

12   Oct 2001  Mar 2002

13   Oct 2001  Mar 2002

14   Oct 2001  Mar 2002

15   Dec 2002  Apr 2003

16   Dec 2002  Apr 2003

17   Dec 2002  Apr 2003

18   Oct 2003  Dec 2003

19   Apr 2004  Jun 2004


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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