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

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

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它。
添加回答
舉報