2016-11-18 2 views
0

APIデータ 'nftp'のフィードを受信して​​います。受信データを処理する関数があります。私はデータを受け取ります、私はデータを印刷することができます(以下の関数ごとに)。pandasデータフレームにAPIデータを追加すると、私の機能に何が問題になりますか?

パンダのデータフレームにデータを保存するにはどうすればよいですか?

データ 'nftp'はストリーミングされています。つまり、新しい行または時には複数の行が同時に入力されるたびに、 'nftpGeneralHandler'はデータフレームにデータを追加し、空のデータフレーム、空のリスト(私は推測する)。

入力データフォーマット: [386、3、375、 'OSE'、94520、 'STL'、94520、800、36.2、 'A'、、、0.0、 '?' '?' '?' 'S'] 関数のprintコマンドが返されます。( 'STL'、94520,36.2,1145、 'A'、 'S')

データをリストに格納しようとすると、データフレーム?

graph_data = pd.DataFrame() 
def nftpGeneralHandler(nftp, api): 
    print "Received ", nftp 
    data_list = [] 
    if nftp[1] == 3 and nftp[10] == 'A': 
     print (nftp[6], nftp[7], nftp[9], nftp[8], nftp[10], nftp[14]) 
     data_list.append([nftp[6], nftp[7], nftp[9], nftp[8], nftp[10], nftp[14]]) 
     graph_data.append(data_list) 

    elif nftp[1] == 99: 
     nftpError(nftp, api) 

答えて

0

は、私はあなたが関数の各ループで所望のデータを返し、graph_dataにそれらを追加することができると思います。最終使用DataFrameコンストラクタ:

def nftpGeneralHandler(nftp, api): 
    #print "Received ", nftp 
    if nftp[1] == 3 and nftp[10] == 'A': 
     print (nftp[6], nftp[7], nftp[9], nftp[8], nftp[10], nftp[14]) 
     out = [nftp[6], nftp[7], nftp[9], nftp[8], nftp[10], nftp[14]] 
    elif nftp[1] == 99: 
     nftpError(nftp, api) 
    return out 

L1 = [386, 3, 375, 'OSE', '?', 94520, 'STL', 94520, 800, 36.2, 'A', '?', '?', 0.0, 'S'] 
L2 = [386, 3, 375, 'OSE', '?', 94520, 'STL', 94520, 800, 36.2, 'A', '?', '?', 0.0, 'S'] 
L3 = [386, 3, 375, 'OSE', '?', 94520, 'STL', 94520, 800, 36.2, 'A', '?', '?', 0.0, 'S'] 
api = ''  
graph_data = [] 

for L in [L1, L2, L3] : 
    graph_data.append(nftpGeneralHandler(L,api)) 
print (graph_data) 
[['STL', 94520, 36.2, 800, 'A', 'S'], 
['STL', 94520, 36.2, 800, 'A', 'S'], 
['STL', 94520, 36.2, 800, 'A', 'S']] 

print (pd.DataFrame(graph_data)) 
    0  1  2 3 4 5 
0 STL 94520 36.2 800 A S 
1 STL 94520 36.2 800 A S 
2 STL 94520 36.2 800 A S 
+0

私が言及している必要があります:データnftp、すなわち開始データフレームにデータを追加していないshoud一度に新しい嘘や、時には複数の行が入ってくるたびに、「nftpGeneralHandler」をストリーミングされ空のデータフレームでは、空のリストIIUCのみが使用されます。 – cJc

+0

申し訳ありませんが、私の更新を確認してください。 – jezrael

+0

もう一度お返事ありがとうございます:) – cJc

関連する問題