2017-03-08 11 views
1

私はExcelファイルから行列を読んでいます。マトリックスは次のようになります。PandasとNumpy.ndarrayタイプのJSONへのExcelマトリックス

  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 

最後に、これを最終的にdictsのリストと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()

0を削除して削除します

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

この時点で、私は立ち往生しています。 numpy.ndarrayタイプからJSONに移動するにはどうすればよいですか?

答えて

1

あなたはdfを想定し、このためのto_dict方法を持っているpandasに固執することができ、あなたの元のデータフレームは、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

関連する問題