2017-03-08 664 views
1

我正在從Excel文件中讀取矩陣。矩陣如下所示:通過Pandas和Numpy.ndarray將Excel矩陣轉換爲JSON類型

  10100300 10100400 10100500 10100600 
10100200 243   0   42   54 
10100300 243   23   42   5443 
10100400 243   110   42   543 
10100500 243   0   432   543232342 
10100600 243   440   42   544 
10100700 243   0   42   54 

最後,我想將其轉換爲類型的字典列表,最後一個JSON文件。

這看起來是這樣的:

[{"Origin" : 10100200, 
"Destination" : 10100300, 
"flow" : 243}, 
{"Origin" : 10100400, 
"Destination" : 10100300, 
"flow" : 23}] 

首先,我讀了這個用熊貓: flows_data_df = pd.read_excel("file.xlsx")

轉換爲numpy的數組: flow_data = flows_data_df.as_matrix()

矩陣很大,有很多零的,所以我刪除它們

clean_flow_data = flow_data[np.all(flow_data == 0, axis=1)]

在這一點上,我卡住了。我如何從numpy.ndarray類型轉到JSON

回答

1

你能堅持pandas這對於這個to_dict方法,假設df是自己的原始數據幀中讀出從Excel,起源是數據幀的索引,目的地是該數據幀的列:

(df.stack()[lambda x: x != 0].rename('flow').rename_axis(("Origin", "Destination")) 
    .reset_index().to_dict("records")) 

#[{'Destination': '10100300', 'Origin': 10100200, 'flow': 243}, 
# {'Destination': '10100500', 'Origin': 10100200, 'flow': 42}, 
# {'Destination': '10100600', 'Origin': 10100200, 'flow': 54}, 
# {'Destination': '10100300', 'Origin': 10100300, 'flow': 243}, 
# ... 
+1

最優秀的,謝謝;) – LearningSlowly