Ответы пользователя по тегу PostgreSQL
  • Как редактировать данные на лету при импорте из файла?

    Maksim_64
    @Maksim_64
    Data Analyst
    читай сначала pandas'om по частям. Затем решай проблему с данными или пропускай плохие строки или применяй к ним свою функцию, которая поможет растолковать что является делимитром в определенной строке и записывай ну или в базу тем же pandas'om или в csv файл и затем импортируй его в базу уже.

    читать по частям pandas

    import pandas as pd
    chunksize = количество строк
    for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
        # подправляешь свой фрейм

    Каждый chunk это фрейм, если у тебя будут проблемы с делимитром он выдаст ошибку. Твоя задача написать код который это дело поправит, pandas имеет очень мощный I/O функционал. https://pandas.pydata.org/docs/user_guide/io.html По ссылке найдешь доки не только насчет ошибок при чтении csv файлов, но и как писать в базу, метод to_sql. Он имеет параметр имя таблицы, соедениение и if_exist, так вот в if_exist поставишь append. То есть каждый твой подправленный кусок файла он будет складывать в таблицу в базе.
    https://pandas.pydata.org/docs/reference/api/panda...
    Ответ написан
    Комментировать
  • Как правильно импортировать таблицу excel в бд postgre?

    Maksim_64
    @Maksim_64
    Data Analyst
    Я бы в принципе рекомендовал использовать pandas для таких целей.
    1. Читаем excel в pandas dataframe псевдокод будет такой.

    import pandas as pd
    df =pd.read_excel(data.xlsx,sheet_name=’Ткани’)

    у функции read_excel много параметров, в том числе header, index_col которые возможно придется настраивать.

    2. Глянул бы на него что таблица в порядке (это как фрейм запишется в базу), глянул бы на типы данных, df.dtypes что бы все типы колонок, были в том виде как их ожидает база. Если надо изменил бы их. Проверил бы есть ли пропущенные значения (nan, NA). Если есть провел бы работу с ними.

    3. Затем бы отправлял в базу методом to_sql(). Псевдо код будет такой.
    df.to_sql('table_name', connection, if_exists='replace')

    Параметр if_exists (если таблица существует) имеет также метод append просто весь фрейм добавит новыми строками, и fail тогда будет ошибка.

    У pandas хорошая документация и он силен в чтениях фалов любых форматов, так что если что то не получается, это почти всегда поправимо, ну и как писать в базу тоже конфигурируется очень удобно, так что если в этом будут проблемы то тоже решается.
    Ответ написан
    1 комментарий
  • Как поменять пароль к pgadmin4?

    Maksim_64
    @Maksim_64
    Data Analyst
    когда вошли в pgadmin в правом верхнем углу щелкаете по панельке (авторизованный юзер), и там есть сменить пароль, добавить двухуровневую аутентификацию. Там же в меню есть Users (пользователи) заходите в него нажимаете крестик добавить и заполняете данные нового пользователя.
    Ответ написан
    Комментировать
  • Почему возникает ошибка при записи в базу данных(serial)?

    Maksim_64
    @Maksim_64
    Data Analyst
    Как поправить запрос, что бы у меня айдишники автоматически заполнялись по мере их увеличения в бд, а не приходилось руками хардкодить цифры


    На то он и serial что бы при вставлении не указывать это поле, оно будет автоматически увеличиваться на один при добавлении новой записи.
    Ответ написан
    1 комментарий
  • Как суммировать количество повторяющих значений?

    Maksim_64
    @Maksim_64
    Data Analyst
    SELECT A.id, A.data_created, A.subject,A.number_id, B.count
      FROM tablename A
           INNER JOIN (SELECT number_id, count(number_id) AS count
                         FROM tablename 
                        GROUP BY number_id) B ON A.number_id = B.number_id
    Ответ написан
    Комментировать