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

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

匹配 2 個數(shù)據(jù)框的熊貓列值

匹配 2 個數(shù)據(jù)框的熊貓列值

湖上湖 2021-07-29 21:07:56
設(shè)置我有 2 個熊貓數(shù)據(jù)框:df_ads:每一行都包含一個已抓取的房屋廣告的信息,并df_ads['ad_post_code']包含該廣告的荷蘭郵政編碼。df_mapping:郵政編碼和NUTS3區(qū)域之間的映射我需要將每個廣告的郵政編碼映射到其 NUTS3 區(qū)域。數(shù)據(jù)幀df_ads['ad_post_code'] 看起來像,0                1567 JA1                3893 GB2                5091 BE3                1087 MB4                7905 GW5                5121 ZH哪里len(df_ads['ad_post_code']) = 85447。df_mapping 看起來像,      CODE NUTS_30     1011  NL3261     1012  NL3262     1013  NL3263     1014  NL3264     1015  NL3265     1016  NL326其中l(wèi)en(df_mapping) = 4074,df_mapping['CODE']顯示荷蘭郵政編碼的前 4 個字符,df_mapping['NUTS_3']是郵政編碼的 NUTS3 區(qū)域。換句話說,郵政編碼1011屬于 NUTS3 區(qū)域NL326。問題我已經(jīng)做了一些簡單的循環(huán)來將廣告映射df_ads到 NUTS3 區(qū)域。但是,我似乎無法編寫正確的循環(huán)設(shè)置。nuts3_map = []# insert postal codes into listfor i in range(0,len(df_ads)):    postal_code_ad = df_ads['ad_post_code'].iloc[i].split()[0]    for j in range(0,len(df_mapping)):        postal_code_map = str(df_mapping['CODE'].iloc[j])        # check if postal code match        if postal_code_ad == postal_code_map:            nuts3_map.append(df_mapping['NUTS_3'].iloc[j])            break    continue運行 this 給出len(nuts3_map) = 85353while len(df_ads) = 85448,這樣df_ads['nuts3'] = nuts3給出ValueError: Length of values does not match length of index。雙循環(huán)是最快的方法嗎?如果是這樣,我如何修復我的 for 循環(huán),使其一切正常?
查看完整描述

1 回答

?
弒天下

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

我將首先在df_ads以下位置創(chuàng)建另一列:


# If `df_mapping['CODE']` is `int`

df_ads['CODE'] = df_ads['ad_post_code'].apply(lambda x: int(x[:4]))


# If `df_mapping['CODE']` is `str`

# df_ads['CODE'] = df_ads['ad_post_code'].apply(lambda x: x[:4])

然后我將DataFrame.merge用來執(zhí)行兩個數(shù)據(jù)幀的內(nèi)部合并:


df_ads.merge(df_mapping, left_on='CODE', right_on='CODE', how='inner')

我冒昧地修改您的數(shù)據(jù)以生成一個可行的示例:


# df_ads['ad_post_code']

0    1567 JA

1    3893 GB

2    5091 BE

3    1087 MB

4    7905 GW

5    5121 ZH

6    1011 XX


# df_mapping

   CODE NUTS_3

0  1011  NL326

1  1012  NL326

2  1013  NL326

3  1014  NL326

4  1015  NL326

5  1016  NL326

6  1567  XSFDF

輸出:


  ad_post_code  CODE NUTS_3

0      1567 JA  1567  XSFDF

1      1011 XX  1011  NL326

如果每個代碼都df_ads['CODE']存在,df_mapping['CODE']那么你應(yīng)該得到正確的輸出。


編輯


如果你想知道列表中的df_mapping是否完整,你可以這樣做:


df_ads.loc[np.logical_not(df_ads['CODE'].isin(df_mapping['CODE']))]


缺失數(shù)據(jù):


   ad_post_code  CODE

id                   

1       3893 GB  3893

2       5091 BE  5091

3       1087 MB  1087

4       7905 GW  7905

5       5121 ZH  5121


查看完整回答
反對 回復 2021-08-03
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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