第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

通過分隔符分割 pandas 列,行中具有兩種不同的大小

通過分隔符分割 pandas 列,行中具有兩種不同的大小

呼如林 2024-01-15 15:37:52
我試圖通過空格分隔符將 pandas 數(shù)據(jù)框中的一列分成多個列。我意識到有些行有一個日期字段,因此與沒有日期字段的行相比,它需要額外的列。這是列值的示例,DA Firstname Lastname 09/30/2020 07:44 AM 9/23/2020 6:06:38 PMJW Firstname Lastname 10/25/2020 11:06 AM None第一行不適合空格分隔符,因為有 8 個空格。第二行適用于我的數(shù)據(jù)集,因為有 6 個空格。有沒有辦法將日期組合在一起作為分隔符?["Inital" "Firstname" "lastname" "date/time1" "date/time2"] 其中“date/time2”列還可以包含“None”我嘗試使用的代碼是,dataset= pd.read_csv("newOutput6",encoding = "ISO-8859-1", delimiter="\t", names = ['Name','Date'], index=False)tmpDF = pd.DataFrame(columns=['Initals','FName','LName','SignupTime','Waiver'])tmpDF[['Initals','FName','LName','SignupTime','Waiver']] = dataset['Name'].str.split(' ', expand=True)索引 16 是不遵循傳統(tǒng)格式的行,我懷疑需要正則表達式來確定這一點。
查看完整描述

1 回答

?
蕭十郎

TA貢獻1815條經(jīng)驗 獲得超13個贊

如果名字和姓氏中沒有空格(否則如何區(qū)分它們):


pattern = ('^(?P<Initials>\w+)\s'

           + '(?P<FName>\w+)\s'

           + '(?P<LName>\w+)\s'

           + '(?P<SignupTime>\d+/\d+/\d+ \d+:\d+ \w+)\s'

           + '(?P<Waiver>.*)'

)


df['name'].str.extract(pattern)

輸出:


  Initials      FName     LName           SignupTime                Waiver

0       DA  Firstname  Lastname  09/30/2020 07:44 AM  9/23/2020 6:06:38 PM

1       JW  Firstname  Lastname  10/25/2020 11:06 AM                  None

更新:對于可選的縮寫,您可以嘗試以下模式:


pattern = ('^(?P<Initials>\w+\s)?'    # make initial optional

           + '(?P<FName>\w+)\s+'

           + '(?P<LName>\w+)\s+'

           + '(?P<SignupTime>\d+/\d+/\d+ \d+:\d+ \w+)\s'

           + '(?P<Waiver>.*)'

)

請注意,現(xiàn)在如果Initials存在,將會有一個尾隨空格,您可以輕松處理。


查看完整回答
反對 回復 2024-01-15
  • 1 回答
  • 0 關(guān)注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號