Pandas

В этой ветке размещаем полезные фрагменты кода. Каждая тема соответствует библиотеке или разделу.
Просьба вопросы и обсуждения писать в другой ветке. Все лишнее будет удалено или перенесено модератором.
Ответить
Аватара пользователя
JuliaS
Verified
Бог аналитики
Бог аналитики
Сообщения: 62
Зарегистрирован: Вт ноя 21, 2023 8:55 am
Лучшие ответы: 5
Поблагодарил(-а): 1 раз(-а)
Поблагодарили: 11 раз(-а)

Pandas

Сообщение JuliaS »

Сегодня
Выводит текущую дату и время.

Код: Выделить всё

Statement['UploadDate'] = pd.Timestamp.now()
Убрать NULL
Заменяет пустые значения нулем (или другим значением).

Код: Выделить всё

Statement = Statement.fillna(0)
Убрать первую строку датафрейма
Убирает первую строку фрейма (например, при загрузке Эксель файла, можно убрать заголовок).

Код: Выделить всё

Statement = Statement.iloc [1: , :]
Задать тип значения
Переопределяет тип на нужный (float, str и т.д.)

Код: Выделить всё

Statement['Payments'] = Statement['Payments'].astype(float)
Длина строки
Определяет длину строки

Код: Выделить всё

Statement["CODE"] = Statement["Project"].str.len()
Обрезка текста
Обрезает первые 5 (или любое количество) символов справа.

Код: Выделить всё

Statement['CODE'] = Statement["Project"].str[:5]
Замена текста
Замена значений в колонке по условию. Замена 202307-202309 на 3К23.

Код: Выделить всё

Statement1.loc[Statement1['StatementPeriod'] == '202307-202309', 'StatementPeriod'] = "3К23"
Фильтр датафрейма
Отфильтровать датафрейм по значению в колонке.

Код: Выделить всё

Statement1 = Statement1[Statement1['Project'] == '123654']
Чтение Эксель
Загрузить Эксель файл.

Код: Выделить всё

file = pd.read_excel(r'C:\Продажи таблица.xlsx', usecols = "A,B,C")
Помещаем данные в датафрем.

Код: Выделить всё

Salesdf = file.rename(columns={ file.columns[0]: "City" , file.columns[1]: "Client", file.columns[2]: "Amount" })

Удалить часть строк в Clickhouse по условию

Код: Выделить всё

client.execute('''DELETE FROM Sales1 WHERE Client LIKE '%ИП Иванова%'; ''')
Сводная таблица
Сводный датафрейм

Код: Выделить всё

Corrections = pd.pivot_table(Corrections, index= ['CorrCompany','CorrPeriod','CorrINN','CorrProject''], aggfunc=np.sum).reset_index()
Округление

Код: Выделить всё

df7['ClosingBalance'] = np.round(df7['ClosingBalance'],2)
Левое соединение
Аналог левого соединения (LEFT JOIN). Для объединения датафреймов в один.

Код: Выделить всё

df = df.merge(df1, left_on=['Agr'], right_on=['AgrID'], how='left')
Объединение
Аналог UNION ALL

Код: Выделить всё

projects = pd.concat([DataFrame1,DataFrame2,DataFrame3])
Задать дату
задает конкретное значение даты для поля

Код: Выделить всё

Statement['UploadDate'] = pd.Timestamp('2023-05-19 00:00:00')
Сохранить Excel
Сохранить датафрейм в Эксель.

Код: Выделить всё

CONSO.to_excel(r"/output.xlsx")
Удалить NULL строки
Все

Код: Выделить всё

df.dropna() 
Только по столбцу

Код: Выделить всё

Q422 = Q422.dropna(subset=['StatementPeriod']) –только по столбцу
Минимальное значение
Находит минимальное значение в колонке

Код: Выделить всё

Sales['MinDate'] = Sales['Date'].min()

Удалить часть строк в Clickhouse по условию с вложенным запросом

Код: Выделить всё

DELETE FROM Sales WHERE Date IN (SELECT Date FROM Sales);
Ответить