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

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

將具有不同值的 JSON 提取到 pandas 中的重復(fù) id 列

將具有不同值的 JSON 提取到 pandas 中的重復(fù) id 列

青春有我 2023-07-11 10:40:27
我有以下數(shù)據(jù)框:df = pd.DataFrame({'id':['0001', '0001'],                   'vat_countries': [{'vat': 21, 'country': 'ES'},                                      {'vat': 23, 'country': 'GR'}]                   })id        vat_countries0001     {'vat': 21, 'country': 'ES'}0001     {'vat': 23, 'country': 'GR'}我想要得到的是:id   vat  country0001  21    'ES'0001  23    'GR'閱讀其他問題我得到以下代碼:df = df.drop('vat_countries', 1).assign(**pd.DataFrame(list_df['vat_countries'].values.tolist()))然而,這給了我:id   vat  country    0001  21    'ES'    0001  21    'ES'這是錯誤的。我已經(jīng)能夠使用以下方法獲得我想要的結(jié)果:c = pd.concat([pd.DataFrame(df[column].values.tolist()),                df.drop(column, 1).reset_index()],               axis=1, ignore_index=True)但這需要手動輸入列名稱。否則,列名稱為 0、1、2、3...有什么方法可以在保留列名稱的同時獲得所需的輸出?謝謝
查看完整描述

3 回答

?
守著星空守著你

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

嘗試pop修復(fù)您的代碼


df.join(pd.DataFrame(df.pop('vat_countries').tolist(),index=df.index))

Out[300]: 

     id  vat country

0  0001   21      ES

1  0001   23      GR


查看完整回答
反對 回復(fù) 2023-07-11
?
天涯盡頭無女友

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

您可以使用以下方法訪問各個值string methods:


df["vat"] = df.vat_countries.str["vat"]

df["country"] = df.vat_countries.str["country"]

df      


    id         vat_countries               vat  country

0   0001    {'vat': 21, 'country': 'ES'}    21  ES

1   0001    {'vat': 23, 'country': 'GR'}    23  GR


查看完整回答
反對 回復(fù) 2023-07-11
?
蠱毒傳說

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

我會pd.Series在帶有 s 的列中應(yīng)用dict,并join用原始結(jié)果,即:


import pandas as pd

df = pd.DataFrame({'id':['0001', '0001'], 'vat_countries': [{'vat': 21, 'country': 'ES'}, {'vat': 23, 'country': 'GR'}]})

final_df = df.join(df.vat_countries.apply(pd.Series))

print(final_df)

輸出:


     id                 vat_countries  vat country

0  0001  {'vat': 21, 'country': 'ES'}   21      ES

1  0001  {'vat': 23, 'country': 'GR'}   23      GR

正如您所看到的,vat_countires 被留下,如果您想放棄它,您可以簡單地刪除drop它。


查看完整回答
反對 回復(fù) 2023-07-11
  • 3 回答
  • 0 關(guān)注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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