我从集群之间移动,如这些被创建的轨迹:的Python:拆分成轨迹步骤
user_id,trajectory
11011,[[[86], [110], [110]]
2139671,[[89], [125]]
3945641,[[36], [73], [110], [110]]
10024312,[[123], [27], [97], [97], [97], [110]]
14270422,[[0], [110], [174]]
14283758,[[110], [184]]
14317445,[[50], [88]]
14331818,[[0], [22], [36], [131], [131]]
14334591,[[107], [19]]
14373703,[[35], [97], [97], [97], [17], [58]]
我想分裂与多个移动到各个区段的轨迹,但我不知道该如何。
实施例:
14373703,[[35], [97], [97], [97], [17], [58]]
成
14373703,[[35,97], [97,97], [97,17], [17,58]]
目的是然后使用这些作为NetworkX边缘分析它们为图形和识别之间的密集运动(边缘)个别群集(节点)。
这是代码我用最初创建的轨迹:
# Import Data
data = pd.read_csv('G:\Programming Projects\GGS 681\dmv_tweets_20170309_20170314_cluster_outputs.csv', delimiter=',', engine='python')
#print len(data),"rows"
# Create Data Fame
df = pd.DataFrame(data, columns=['user_id','timestamp','latitude','longitude','cluster_labels'])
# Filter Data Frame by count of user_id
filtered = df.groupby('user_id').filter(lambda x: x['user_id'].count()>1)
#filtered.to_csv('G:\Programming Projects\GGS 681\dmv_tweets_20170309_20170314_final_filtered.csv', index=False, header=True)
# Get a list of unique user_id values
uniqueIds = np.unique(filtered['user_id'].values)
# Get the ordered (by timestamp) coordinates for each user_id
output = [[id,filtered.loc[filtered['user_id']==id].sort_values(by='timestamp')[['cluster_labels']].values.tolist()] for id in uniqueIds]
# Save outputs as csv
outputs = pd.DataFrame(output)
#print outputs
headers = ['user_id','trajectory']
outputs.to_csv('G:\Programming Projects\GGS 681\dmv_tweets_20170309_20170314_cluster_moves.csv', index=False, header=headers)
如果拆分这种方式是可行的,能不能在处理过程中完成的,作为事后反对?我想在创建时执行它,以消除任何后处理。
这工作完全在我提供的数据子集,但是,当我给它我的全部数据设置为csv格式,我收到了很多空着的动作和存在的动作都没有正确分割。例如'[[[,[8,86,6],] ,,,,[,[1,11,10,0],] ...'。写入csv时也存在这种情况。我看到你正在使用Python 3.5,我在2.7,可能会导致一个问题? –