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

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

根據(jù)列表中的項(xiàng)目拆分DataFrame中的列

根據(jù)列表中的項(xiàng)目拆分DataFrame中的列

動漫人物 2022-10-18 17:55:20
我有下表,想將每一行分成三列:州、郵政編碼和城市。州和郵政編碼很簡單,但我無法提取城市。我想過在街道同義詞之后和狀態(tài)之前拆分每個字符串,但我似乎弄錯了循環(huán),因?yàn)樗粫褂梦伊斜碇械淖詈笠豁?xiàng)。輸入數(shù)據(jù):    Address Text0   11 North Warren Circle Lisbon Falls ME 042521   227 Cony Street Augusta ME 043302   70 Buckner Drive Battle Creek MI3   718 Perry Street Big Rapids MI4   14857 Martinsville Road Van Buren MI5   823 Woodlawn Ave Dallas TX 752086   2525 Washington Avenue Waco TX 767107   123 South Main St Dallas TX 75201我試圖實(shí)現(xiàn)的輸出(對于所有行,但我只寫了前兩個以節(jié)省時間)    City          State    Postcode 0   Lisbon Falls  ME       042521   Augusta       ME       04330我的代碼:# Extract postcode and statedf["Zip"] = df["Address Text"].str.extract(r'(\d{5})', expand = True)df["State"] = df["Address Text"].str.extract(r'([A-Z]{2})', expand = True)# Split after these substringsstreet_synonyms = ["Circle", "Street", "Drive", "Road", "Ave", "Avenue", "St"]# This is where I got stuckdf["Syn"] = df["Address Text"].apply(lambda x: x.split(syn))df
查看完整描述

1 回答

?
30秒到達(dá)戰(zhàn)場

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個贊

這是一種方法:


import pandas as pd


# data

df = pd.DataFrame(

    ['11 North Warren Circle Lisbon Falls ME 04252',

     '227 Cony Street Augusta ME 04330',

     '70 Buckner Drive Battle Creek MI',

     '718 Perry Street Big Rapids MI',

     '14857 Martinsville Road Van Buren MI',

     '823 Woodlawn Ave Dallas TX 75208',

     '2525 Washington Avenue Waco TX 76710',

     '123 South Main St Dallas TX 75201'],

    columns=['Address Text'])


# Extract postcode and state

df["Zip"] = df["Address Text"].str.extract(r'(\d{5})', expand=True)

df["State"] = df["Address Text"].str.extract(r'([A-Z]{2})', expand=True)


# Split after these substrings

street_synonyms = ["Circle", "Street", "Drive", "Road", "Ave", "Avenue", "St"]



def find_city(address, state, street_synonyms):

    for syn in street_synonyms:

        if syn in address:

            # remove street

            city = address.split(syn)[-1]

            # remove State and postcode

            city = city.split(state)[0]

            return city



df['City'] = df.apply(lambda x: find_city(x['Address Text'], x['State'], street_synonyms), axis=1)


print(df[['City', 'State', 'Zip']])


"""

             City State    Zip

0   Lisbon Falls     ME  04252

1        Augusta     ME  04330

2   Battle Creek     MI    NaN

3     Big Rapids     MI    NaN

4      Van Buren     MI  14857

5         Dallas     TX  75208

6       nue Waco     TX  76710

7         Dallas     TX  75201

"""


查看完整回答
反對 回復(fù) 2022-10-18
  • 1 回答
  • 0 關(guān)注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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