我收到api数据'nftp'的提要,我有一个处理传入数据的函数。我收到数据确定,我可以打印数据(按照下面的功能)。
如何将数据存储在pandas数据框中?
数据'nftp'是流式传输的,即每次有新线或有时几条线进入时,'nftpGeneralHandler'会将数据附加到数据帧,而不是从空数据帧开始,只有空列表(我猜)。
传入数据格式: [386,3,375,'OSE','?',94520,'STL',94520,800,36.2,'A','?','?',0.0,'S'] 我的函数中的打印命令返回:('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 :(得分: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