我在有兩列的熊貓中有一個數據框。一個是ID,另一個是長JSON對象,它是數據框中每個對象的相同對象。我的目標是爲JSON對象中的每個鍵創建列。將包含JSON對象的數據框擴展爲更大的數據框
這裏是輸入
ID request_json
175431467 {"Rate":"50","Groups":"7 months - 3 years"
我想有三列擴展成一個數據幀此示例:ID,速率,和組。
這樣做的最好方法是什麼?
我在有兩列的熊貓中有一個數據框。一個是ID,另一個是長JSON對象,它是數據框中每個對象的相同對象。我的目標是爲JSON對象中的每個鍵創建列。將包含JSON對象的數據框擴展爲更大的數據框
這裏是輸入
ID request_json
175431467 {"Rate":"50","Groups":"7 months - 3 years"
我想有三列擴展成一個數據幀此示例:ID,速率,和組。
這樣做的最好方法是什麼?
您可以使用DataFrame
構造與join
或concat
:
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
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
這不會改變我的數據框 – mangodreamz
@mangodreamz,您需要將其分配回或另一個變量 – MaxU
這些都不是工作。對於這兩者,它只是將request_json列重命名爲0. – mangodreamz
請檢查編輯答案。 – jezrael