как загрузить набор данных в формате xlsx в python [duplicate]

Пробовал несколько комбинационных ответов без особого успеха.

Используя Swift 4, я обнаружил, что мне нужно убедиться, что были реализованы следующие два элемента, чтобы гарантировать, что изображение было выбрано и помещено в сборщик (обратите внимание, что ошибки [обнаружения], возникающие при обнаружении расширений :

Ошибка домена = Код подключаемого модуля = 13 «запрос отменен» UserInfo = {NSLocalizedDescription = запрос отменен} «

сообщение по-прежнему отображается в консоли, но это не мешает вам добавлять изображение). Может быть, это сообщение, которое приводит к увольнению сборщика?

1) Делегат для UIImagePickerController - (UIImagePickerControllerDelegate & UINavigationControllerDelegate)?, поэтому необходимо явно добавить UINavigationControllerDelegate в качестве одного из протоколов:

class ViewController:UIViewController, UIImagePickerControllerDelegate, 
    UINavigationControllerDelegate { .... }. 

2) Убедитесь, что в файле info.plist есть клавиша Privacy - Photo library Usage Description и значение String.

Конечно, вам необходимо убедиться, что вы создаете UIImagePickerController и установите его делегат, равный self в ViewDidLoad():

class ViewController:UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 
    let imagePickerController = UIImagePickerController()
    override func viewDidLoad() {
        super.viewDidLoad()
        imagePickerController.delegate = self
    }
    ...
}
27
задан Pythonista anonymous 15 September 2015 в 16:48
поделиться

3 ответа

Начиная с v0.20.0, аргумент ключевого слова dtype в функции read_excel() может использоваться для указания типов данных, которые должны применяться к столбцам, как это существует для read_csv() .

Использование аргументов converters и dtype вместе при одном и том же имени столбца приведет к тому, что последний будет затенен, а прежний получит предпочтение.

< hr>

1) Inorder, чтобы он не интерпретировал dtypes, а скорее передавал все содержимое своих столбцов, поскольку они были первоначально в файле раньше, мы могли бы установить этот аргумент в str или object, чтобы мы не испортили наши данные. (один из таких случаев - это ведущие нули в числах, которые будут потеряны в противном случае)

pd.read_excel('file_name.xlsx', dtype=str)            # (or) dtype=object

2) Он даже поддерживает отображение битов, в котором keys составляют имена столбцов, а values - соответствующие данные тип, который должен быть установлен, особенно если вы хотите изменить dtype для подмножества всех столбцов.

# Assuming data types for `a` and `b` columns to be altered
pd.read_excel('file_name.xlsx', dtype={'a': np.float64, 'b': np.int32})
9
ответ дан Nickil Maveli 20 August 2018 в 18:51
поделиться
  • 1
    Я понял, что «преобразователи» задали функцию для применения к столбцу. очевидно, я был неправ - спасибо за указание на это, это очень полезно! – Pythonista anonymous 15 September 2015 в 17:09
  • 2
    Где я могу найти список допустимых функций преобразователя? Я вижу здесь str, но, предположительно, есть int и еще несколько - есть ли ссылка где-нибудь в исходных документах, которые перечисляют возможные функции конвертора? – Thomas Kimber 1 November 2016 в 18:23
  • 3
    Я тоже не нашел список. Поскольку "преобразователи" принимает функции, я подозреваю, что ваше воображение является пределом, так что вы держитесь в пределах «конвертеров». (т. е. он был разработан для использования функций, для которых требуется только одна входная переменная!). – tnknepp 1 November 2016 в 19:46
  • 4
    read_excel не принимает параметр dtype. – Chankey Pathak 16 November 2017 в 10:11
  • 5
  • 6
  • 7
    – Andrew Fogg 23 October 2018 в 19:48

Функция read_excel () имеет аргумент преобразователей, где вы можете применять функции для ввода в определенных столбцах. Вы можете использовать это, чтобы сохранить их как строки. Документация :

Dict функций для преобразования значений в определенные столбцы. Ключи могут быть целыми или столбцами, значения - это функции, которые принимают один входной аргумент, содержимое ячейки Excel и возвращают преобразованное содержимое.

Пример кода:

pandas.read_excel(my_file, converters = {my_str_column: str})
8
ответ дан Nix G-D 20 August 2018 в 18:51
поделиться
  • 1
    Если нам неизвестно количество столбцов, присутствующих на листе, есть ли способ применить его к каждому столбцу при чтении? – Tango 22 July 2017 в 19:27
  • 2
    Получено решение: converters = {col: str for col in column_list} df = pd.read_excel('some_excelfile.xls', converters=converters) – Tango 22 July 2017 в 20:26
  • 3
  • 4

Если вам неизвестно число и имя столбцов в dataframe, тогда этот метод может быть полезен:

column_list = []
df_column = pd.read_excel(file_name, 'Sheet1').columns
for i in df_column:
    column_list.append(i)
converter = {col: str for col in column_list} 
df_actual = pd.read_excel(file_name, converters=converter)

, где column_list - это список ваших имен столбцов.

4
ответ дан Tango 20 August 2018 в 18:51
поделиться
  • 1
    Просто интересно, будет ли df = df.astype(str) не лучше (проще). – Petr Matuska 7 June 2018 в 07:53
Другие вопросы по тегам:

Похожие вопросы: