Извиняюсь, если я не все правильно выложил для питонов.Я работаю над исправлением кода, унаследованного от языка, с которым я не часто работаю.
Структура файла json, который регулярно извлекается для программы, изменилась, что привело к ее аварийному завершению.
Соответствующий json раньше выглядел так:
],"custom_variable_values" : [
"1543788209",
"Group",
"Area",
"Name",
"00.000000",
"-00.000000"
],
Теперь это выглядит так
,["1544479406","Group","Area","Name","00.000000","-00.0000000"],
Отсутствие имени для объекта, кажется, разрушаетскрипт.Как я могу изменить имена всех столбцов с 0-7 на старые имена?
Если это помогает питону, который я пытаюсь запустить снова, это:
testdf = hosts['custom_variable_values']
series = pd.Series(testdf)
locdf = pd.DataFrame(item for item in series)
locales = locdf[[4,5]]
Если я сохраняю приведенный выше код в его предыдущем рабочем состоянии, я получаю следующую ошибку:
File "/usr/lib/cgi-bin/outagesAK.py", line 112, in <module>
locales = locdf[[4,5]]
File "/usr/lib/python3/dist-packages/pandas/core/frame.py", line 1963, in
__getitem__return self._getitem_array(key)
File "/usr/lib/python3/dist-packages/pandas/core/frame.py", line 2007, in
_getitem_array
indexer = self.ix._convert_to_indexer(key, axis=1)
File "/usr/lib/python3/dist-packages/pandas/core/indexing.py", line 1150,
in _convert_to_indexer
raise KeyError('%s not in index' % objarr[mask])
KeyError: '[4 5] not in index'
Имеет смысл, что его нет в индексе, когда у меня больше нет ничего с именем 'custom_variable_values'
Если я изменяю код так, чтобы он читал testdf = hosts[6]
, он выполнялся без ошибок, но он не извлекает данные, которые он должен находить в позициях 4 и 5. В данный момент он не выдает коды ошибок.
Обновление:
Когда я просто пытаюсь переименовать заголовки столбцов, все значения превращаются в NaN.Это проблема индексации?
Что я сделал, чтобы изменить заголовки при создании кадра данных.
df = pd.DataFrame(data, columns = ['col1','col2','col3','etc'])
Обновление 2:
Удалось получить в кадре данных правильные имена столбцов, выполнив командуследующее:
columns = ['col1', 'col2', 'col3', 'etc']
df = pd.read_json(file)
df.columns = columns
Обновление 3: Вытащил мою последнюю стабильную версию кода, добавил код из Обновления 2, и все работает сейчас.