[英]Split nested column into new columns
我的 dataframe 有一個嵌套列 (people_info),其中包含如下示例中的單元格。
[{"institution":"some_institution","startMonth":1,"startYear":2563,"course":"any","id":1111,"formation":"any","endMonth":12, “結束年”:2556,“狀態”:“完成”}]
據我所知,這可以使用字典/json 概念來解決。
考慮到這個嵌套單元格的每個鍵都將是一個具有各自值的新列,我正在嘗試將此列拆分為新列。
我嘗試了 json_normalize,但出現此錯誤:“AttributeError: 'str' object has no attribute 'values'”
我試圖在字典中轉換這些單元格,但我從來沒有能夠讓 python 明白“機構”是一個鍵,而“some_institution”是這個創建的字典中的一個值。 似乎 python 將整個單元格理解為一個字符串。
你能幫助我嗎? 如果我不清楚,請告訴我。 謝!
IIUC,以下應該有效:
輸入
df = pd.DataFrame({'col1':[1], 'col2':2, 'nested_column':'[{"institution":"some_institution","startMonth":1,"startYear":2563,"course":"any","id":1111,"formation":"any","endMonth":12,"endYear":2556,"status":"complete"}]'})
df
col1 col2 nested_column
0 1 2 [{"institution":"some_institution","startMonth...
過程
import json
df['nested_column_dict'] = df['nested_column'].transform(lambda x : json.loads(x)[0] if x is not np.nan else {})
df = pd.concat([df, pd.DataFrame.from_records(df['nested_column_dict'])], axis=1)
df.drop('nested_column_dict', axis=1, inplace=True)
Output
df
col1 col2 nested_column institution startMonth startYear course id formation endMonth endYear status
0 1 2 [{"institution":"some_institution","startMonth... some_institution 1 2563 any 1111 any 12 2556 complete
也許這有幫助。
導入 pandas 作為 pd
數據= [{“機構”:“some_institution”,“startMonth”:1,“startYear”:2563,“course”:“any”,“id”:1111,“formation”:“any”,“endMonth”: 12,“結束年”:2556,“狀態”:“完成”}]
l = next(數據中的項目)
df = pd.DataFrame(l, index=[0])
df
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.