2017-06-13 21 views
0

我在有兩列的熊貓中有一個數據框。一個是ID,另一個是長JSON對象,它是數據框中每個對象的相同對象。我的目標是爲JSON對象中的每個鍵創建列。將包含JSON對象的數據框擴展爲更大的數據框

這裏是輸入

ID request_json 
175431467 {"Rate":"50","Groups":"7 months - 3 years" 

我想有三列擴展成一個數據幀此示例:ID,速率,和組。

這樣做的最好方法是什麼?

回答

2

您可以使用DataFrame構造與joinconcat

import json 

df = df[['ID']].join(pd.DataFrame(df['request_json'].apply(json.loads).values.tolist())) 
print (df) 
      ID    Groups Rate 
0 175431467 7 months - 3 years 50 

或者:

df = pd.concat([df['ID'], 
       pd.DataFrame(df['request_json'].apply(json.loads).values.tolist())], axis=1) 
print (df) 
      ID    Groups Rate 
0 175431467 7 months - 3 years 50 
+0

這些都不是工作。對於這兩者,它只是將request_json列重命名爲0. – mangodreamz

+0

請檢查編輯答案。 – jezrael

2
In [38]: pd.io.json.json_normalize(df.to_dict('r')) 
Out[38]: 
      ID request_json.Groups request_json.Rate 
0 175431467 7 months - 3 years    50 
+0

這不會改變我的數據框 – mangodreamz

+0

@mangodreamz,您需要將其分配回或另一個變量 – MaxU

相關問題