簡體   English   中英

如何將一個包含 JSON 值的 CSV 列轉換為 4 個不同的列?

[英]How to convert one CSV column contaning JSON values into 4 different columns?

我有一個名為 Parsing.csv 的 CSV,內容顯示如下

userid            data_to_parse
54f3ad9a29ada   "value":"N;U;A7;W"}]
54f69f2de6aec   "value":"N;U;I6;W"}]
54f650f004474   "value":"Y;U;A7;W"}]
54f52e8872227   "value":"N;U;I1;W"}]
54f64d3075b72   "value":"Y;U;A7;W"}]
54f69dc01793f   "value":"N;U;A1;W"}]
54f5d26833ce6   "value":"N;U;A1;W"}]
54f52b1a7e647   "value":"N;U;A4;W"}]
54f4ae7da8d01   "value":"N;U;A1;W"}]
54f6290ca187d   "value":"N;U;U;W"}]

我已經使用

Parsing = pd.read_csv("data/Parsing.csv") 

現在我想將值(存儲在“data_to_parse”列中)解析為四個單獨的列。

例如,第一個條目的四個附加列的值將是“N”、“you”、“A7”和“W”。 這些數據基本上來自 JSON blob。 我怎樣才能實現它?

試過了,但它給了我一個錯誤,說它不能識別熊貓屬性錯誤中的 JSON

 v=pd.io.json.json_normalize
(Parsing.data_to_parse.apply(pd.json.loads).tolist())

預期輸出:具有不同列的數據框中的第一個條目如下所示 -

userid        | value1| value2| value3| value4
54f3ad9a29ada | N     |  U    |    A7 | W

IIUC,一種方法是使它們成為適當的json並使用pandas.Series.str.split

s = ("{" + df["data_to_parse"].str.strip("]")).apply(pd.io.json.loads)
df2 = s.str["value"].str.split(";", expand=True)
new_df = pd.concat([df, df2.add_prefix("value")], axis=1)
print(new_df)

輸出:

          userid         data_to_parse value0 value1 value2 value3
0  54f3ad9a29ada  "value":"N;U;A7;W"}]      N      U     A7      W
1  54f69f2de6aec  "value":"N;U;I6;W"}]      N      U     I6      W
2  54f650f004474  "value":"Y;U;A7;W"}]      Y      U     A7      W
3  54f52e8872227  "value":"N;U;I1;W"}]      N      U     I1      W
4  54f64d3075b72  "value":"Y;U;A7;W"}]      Y      U     A7      W
5  54f69dc01793f  "value":"N;U;A1;W"}]      N      U     A1      W
6  54f5d26833ce6  "value":"N;U;A1;W"}]      N      U     A1      W
7  54f52b1a7e647  "value":"N;U;A4;W"}]      N      U     A4      W
8  54f4ae7da8d01  "value":"N;U;A1;W"}]      N      U     A1      W
9  54f6290ca187d   "value":"N;U;U;W"}]      N      U      U      W

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM