Я разрабатываю ввод в узловую диаграмму networkx для просмотра трафика c между отправителями. Фрейм данных имеет несколько столбцов. Я создал новый столбец submit_datetime_node_out
, который дублирует столбец submit_datetime_node_in
, но сдвинут на одну строку вверх. Таким образом, я могу получить длительности между узлами и узлами. Проблема в том, что при изменении идентификатора рабочего задания мне нужно получить последнюю строку, прежде чем она изменится на None
, чтобы я мог удалить ее. В противном случае submit_datetime_node_out
для последней записи идентификатора рабочего задания захватывает submit_datetime_node_in
для нового идентификатора рабочего заказа и создает очень длинный край и искажает результаты. Я был бы очень признателен за любые указания по этому вопросу.
мой код выглядит следующим образом: ( df4_1 пример прилагается)
import pandas as pd
df4_1 = df3_1[
['Work Order ID', 'Service Request ID', 'Work_Order_Type', 'Support_Group', 'Priority', 'Submit_DateTime_Node_IN',
'Submitter_Node_IN']]
df4_1['Submit_DateTime_Node_OUT'] = df4_1['Submit_DateTime_Node_IN'].shift(-1)
df4_1['Submitter_Node_OUT'] = df4_1['Submitter_Node_IN'].shift(-1)
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
WOD = df4_1['Work Order ID']
le = preprocessing.LabelEncoder()
WOD_LE_TRNS = le.fit_transform(WOD)
df4_1['WOD_LE_TRNS'] = pd.Series(WOD_LE_TRNS)
SDNO = df4_1['Submit_DateTime_Node_OUT']
WOD_LE_TRANS = df4_1['WOD_LE_TRNS']
for i in WOD_LE_TRNS:
for j in SDNO:
if df4_1.loc[i + 1, 'WOD_LE_TRNS'] != df4_1.loc[i, 'WOD_LE_TRNS']:
df4_1.loc[j, 'Submit_DateTime_Node_OUT'] = None
else:
df4_1.loc[j, 'Submit_DateTime_Node_OUT']