![](/img/trans.png)
[英]How to convert a JSON list into two different columns in a CSV file?
[英]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.