Получить столбец Excel в переменную - PullRequest
0 голосов
/ 13 июля 2020

Я хочу переместить некоторые данные xls в json. Я не могу просто использовать готовое решение, так как это немного особый случай.

Вот Excel

Here's the code:

import pandas

xl = pandas.ExcelFile("./data/file.xlsx")
df = xl.parse("2")
x = df["XX"][0]
print(x)

# writing to file
text_file = open("json_files/Output.json", "w")

# text_file.write(json_str)

text_file.close()

Here's the error I'm getting:

Traceback (most recent call last):
  File "C:\Users\aironsid\Documents\Capgemini\Excel_to_Json\venv\lib\site-packages\pandas\core\indexes\base.py", line 2646, in get_loc
    return self._engine.get_loc(key)
  File "pandas\_libs\index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas\_libs\hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'XX'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "excelToJson.py", line 5, in 
    x = df["XX"][0]
  File "C:\Users\aironsid\Documents\Capgemini\Excel_to_Json\venv\lib\site-packages\pandas\core\frame.py", line 2800, in __getitem__
    indexer = self.columns.get_loc(key)
  File "C:\Users\aironsid\Documents\Capgemini\Excel_to_Json\venv\lib\site-packages\pandas\core\indexes\base.py", line 2648, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandas\_libs\index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas\_libs\hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'XX'

It seems to not be able to find the column name.

I'm using this видео в качестве ссылки

import pandas

xl = pandas.ExcelFile("file.xlsx")
# df = xl.parse("Text")
# print(df.columns)
# # x = df["XX"][0]
# # print(x)

df = pandas.Dataframe(xl)
print(df.columns)
# if you can see the columns
print(df["XX"])
# if this is success
dictionary = {"XX": list(df["XX"])}

# writing to file
text_file = open("json_files/Output.json", "w")

# text_file.write(json_str)

text_file.close()

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Как упоминалось в комментариях, вам необходимо перевести начальную точку A1 в B7 в вашем случае. Это может быть достигнуто с помощью параметра «skiprows» pandas.ExcelFile.parse и параметра index_col:

import pandas
xl = pandas.ExcelFile("path\to\your\file.xlsx")
df = xl.parse("YourSheetName",index_col=1,skiprows=7)

Для получения дополнительной документации / параметров см. pandas docs

1 голос
/ 13 июля 2020

попробуйте это

df = pd.Dataframe(xl)
print(df.columns)
# if you can see the columns 
print(df["XX"])
# if this is success
dictionary = {"XX": list(df["XX"])}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...