У меня есть некоторые данные в текстовом файле, которые я читаю в Панд. Упрощенная версия текста, прочитанного в:
idx_level1|idx_level2|idx_level3|idx_level4|START_NODE|END_NODE|OtherData...
353386066294006|1142|2018-09-20T07:57:26Z|1|18260004567689|18260005575180|...
353386066294006|1142|2018-09-20T07:57:26Z|2|18260004567689|18260004240718|...
353386066294006|1142|2018-09-20T07:57:26Z|3|18260005359901|18260004567689|...
353386066294006|1142|2018-09-20T07:57:31Z|1|18260004567689|18260005575180|...
353386066294006|1142|2018-09-20T07:57:31Z|2|18260004567689|18260004240718|...
353386066294006|1142|2018-09-20T07:57:31Z|3|18260005359901|18260004567689|...
353386066294006|1142|2018-09-20T07:57:36Z|1|18260004567689|18260005575180|...
353386066294006|1142|2018-09-20T07:57:36Z|2|18260004567689|18260004240718|...
353386066294006|1142|2018-09-20T07:57:36Z|3|18260005359901|18260004567689|...
353386066736543|22|2018-04-17T07:08:23Z||||...
353386066736543|22|2018-04-17T07:08:24Z||||...
353386066736543|22|2018-04-17T07:08:25Z||||...
353386066736543|22|2018-04-17T07:08:26Z||||...
353386066736543|403|2018-07-02T16:55:07Z|1|18260004580350|18260005235340|...
...
И код, который я использую для чтения, выглядит следующим образом:
mydata = pd.read_csv('/myloc/my_simple_data.txt', sep='|',
dtype={'idx_level1': 'int',
'idx_level2': 'int',
'idx_level3': 'str',
'idx_level4': 'float',
'START_NODE': 'str',
'END_NODE': 'str',
'OtherData...': 'str'},
parse_dates = ['idx_level3'],
index_col=['idx_level1','idx_level2','idx_level3','idx_level4'])
В какой-то момент я распаковываю эти данные:
temp_df = mydata.loc[(slice(None)),['START_NODE', 'END_NODE', 'OtherData...']].unstack()
Мои данные теперь выглядят как
START_NODE ... OtherData...
idx_level4 1.0 2.0 3.0 ... 25.0 26.0 27.0 28.0 29.0 30.0 31.0 32.0
idx_level1 idx_level2 idx_level3 ...
353386066294006 1033 2018-09-03 14:52:27 18260004553260 18260005729143 18260004553259 ... NaN NaN NaN NaN NaN NaN NaN NaN
2018-09-03 14:52:32 18260004553260 18260005729143 18260004553259 ... NaN NaN NaN NaN NaN NaN NaN NaN
2018-09-03 14:52:37 18260004553260 18260005729143 18260004553259 ... NaN NaN NaN NaN NaN NaN NaN NaN
2018-09-03 14:52:42 18260004553260 18260005729143 18260004553259 ... NaN NaN NaN NaN NaN NaN NaN NaN
2018-09-03 14:52:47 18260004553260 18260005729143 18260004553259 ... NaN NaN NaN NaN NaN NaN NaN NaN
2018-09-03 14:52:52 18260004553260 18260005729143 18260004553259 ... NaN NaN NaN NaN NaN NaN NaN NaN
2018-09-03 14:52:57 18260004553260 18260005729143 18260004553259 ... NaN NaN NaN NaN NaN NaN NaN NaN
...
Есть ли теперь способ, которым я могу выбрать определенные столбцы для применения какого-либо действия - скажем, я хотел shift(1)
к столбцу 'START_NODE', где он имеет idx_level4 = 1.0?