Форум программистов, компьютерный форум, киберфорум
Python: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.04.2016
Сообщений: 16

Работа библ. pandas с данными с xlsx

28.02.2024, 12:46. Показов 398. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не пойму в чём проблема, код работал на протежении пол года без проблем, теперь не удаляет строчки с датами текущей недели, проверил через print все форматы выовдятся правильно, но вот почему то не удаляет эти строки не пойму, причём само сломалось, ничего не менял, мистика.....

как работает код
открывает три файла, сличает их по критериям, переносит необходимые значения в один файл (несоотвествия)
определяет даты текущей недели от и до
читает столбец 3 файла DISCREPANCY_FILE и проверяет попадает ли дата в текущий диапазон текущей недели, если попадает то удаляет строку, если не попадает, то оставляет (это нужно для отображения несоответствий)

ну вот у меня и сломалось всё само, дата попадает, а удалять не удаляет.....
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
           # Загрузка данных из файлов с использованием Pandas
            verification_df = pd.read_excel(ALL_GTM_FILE_VERIFIC, header=None)
            archive_df = pd.read_excel(ARCHIVE_FILE_RA, header=None)
            updates_df = pd.read_excel(UPDATES_FILE_ARSHIN, header=None)
 
            # Создание списка значений из столбца F файла верификации
            verification_column_5 = verification_df.iloc[:, 5]
 
            # Создание множества значений из столбца A файла архива
            archive_column_1 = set(archive_df.iloc[:, 0])
 
            # Фильтрация несоответствий и запись их в новый DataFrame
            discrepancy_df = verification_df[~verification_column_5.isin(archive_column_1)]
 
            # Добавление проверки на заполненность ячеек в столбцах B, C файла "UPDATES_FILE_ARSHIN"
            empty_cells = updates_df.iloc[1:, [1, 2 ]].isnull().any(axis=1)
            empty_rows = updates_df.iloc[1:][empty_cells]
 
            # Выбор нужных столбцов из "UPDATES_FILE_ARSHIN" и добавление их в "DISCREPANCY_FILE"
            selected_columns = empty_rows.iloc[:, [0, 4, 5]]  # Выбираем столбцы 1, 5, 6
            selected_columns.columns = [5, 6, 7]  # Вставляем вдругие столбцы 5, 6, 7
 
            discrepancy_df = pd.concat([discrepancy_df, selected_columns], ignore_index=True)
 
            # Считываем текущую дату
            current_date = datetime.now()
 
            # Определяем первый день недели
            start_of_week = current_date - timedelta(days=current_date.weekday())
 
            # Определяем последний день недели
            end_of_week = start_of_week + timedelta(days=6)
 
            print(f"{start_of_week} - {end_of_week}")
 
            # Определяем форматы дат
            format_date = "%d.%m.%Y"
 
            # Преобразуем даты в строки
            start_of_week_str = start_of_week.strftime(format_date)
            end_of_week_str = end_of_week.strftime(format_date)
 
            print(f"{start_of_week_str} - {end_of_week_str}")
 
            # Вывод значений из столбца 3 перед фильтрацией
            print("Values in column 3 before filtering:")
            print(discrepancy_df.iloc[:, 3])
 
            # Удаление строк, в которых столбец 3 содержит дату текущей недели
            discrepancy_df = discrepancy_df.loc[~discrepancy_df.iloc[:, 3].between(start_of_week_str, end_of_week_str)]
            for value in discrepancy_df.iloc[:, 3]:
                print(f"Value: {value}, Is in range: {start_of_week_str} - {end_of_week_str}: {value >= start_of_week_str and value <= end_of_week_str}")
            print(discrepancy_df)
            
            # Получить количество несоответствий
            num_discrepancies = discrepancy_df.shape[0]
 
            # Сохранение файла несоответствий
            discrepancy_df.to_excel(DISCREPANCY_FILE, index=False, header= False)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Принты
2024-02-26 12:44:28.545627 - 2024-03-03 12:44:28.545627
26.02.2024 - 03.03.2024
Values in column 3 before filtering:
0     27.02.2024
1     27.02.2024
2     28.02.2024
3     28.02.2024
4     27.02.2024
         ...    
81    15.02.2024
82    15.02.2024
83    15.02.2024
84    15.02.2024
85    15.02.2024
Name: 3, Length: 86, dtype: object
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 28.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 28.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 27.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
..       ...         ...      ...         ...         ...                         ...  ...  ...
Value: 15.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 15.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 15.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 15.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 15.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 15.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 15.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
Value: 15.02.2024, Is in range: 26.02.2024 - 03.03.2024: False
           0           1        2           3           4                           5    6    7
0   22577-08     ФП11.2К  2005062  27.02.2024  26.02.2025  С-АЮЛ/27-02-2024/319805240  NaN  NaN
1   22577-08     ФП11.2К  1407176  27.02.2024  26.02.2025  С-АЮЛ/27-02-2024/319805239  NaN  NaN
2   17005-01     ТСМ 012        1  28.02.2024  27.02.2026  С-АЮЛ/28-02-2024/319805187  NaN  NaN
3   17005-01     ТСМ 012        2  28.02.2024  27.02.2026  С-АЮЛ/28-02-2024/319805186  NaN  NaN
4   26053-03      АМТ-03       26  27.02.2024  26.08.2024  С-АЮЛ/27-02-2024/319805114  NaN  NaN
..       ...         ...      ...         ...         ...                         ...  ...  ...
81  28514-05   НМП-522  1804860  15.02.2024  14.02.2025  С-АЮЛ/15-02-2024/318859951  NaN  NaN
82  28514-05  ТНМП-522  1805573  15.02.2024  14.02.2025  С-АЮЛ/15-02-2024/318859950  NaN  NaN
83  28514-05   НМП-522  1804835  15.02.2024  14.02.2025  С-АЮЛ/15-02-2024/318859949  NaN  NaN
84  28514-05   НМП-522  1804875  15.02.2024  14.02.2025  С-АЮЛ/15-02-2024/318859948  NaN  NaN
85  28514-05   НМП-522  9568109  15.02.2024  14.02.2025  С-АЮЛ/15-02-2024/318859947  NaN  NaN
 
[86 rows x 8 columns]

Не пойму в чём проблема, как могло всё сломаться..... Есть у кого нибудь мысли в чём проблема ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2024, 12:46
Ответы с готовыми решениями:

Работа с данными файлов Excel .xlsx.
Здравствуйте! А у меня тоже вопрос по теме, если позволите. При записи питоном каких либо данных в уже существующий экселевский файл, все...

Работа с данными файлов Excel .xlsx. Чтение и вывод данных с использованием модуля openpyxl
Здравствуйте! Пытаюсь освоить работу чтения и записи данных в таблицы Excel, используя Python и его модуль openpyxl. При попытке записи или...

Pandas: запись в файл xlsx стилизированного dataframe
Всем привет. Есть словарь такого формата host={ 'ip_adr': 'OS: Windows Server (R) 2008 Standard 6001 Service Pack 1 (Windows...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.02.2024, 12:46
Помогаю со студенческими работами здесь

Pandas: запись в файл xlsx стилизированного dataframe
Приветствуемую все! Есть словарь формата host={ 'ip_adr': 'OS: Windows Server (R) 2008 Standard 6001 Service Pack 1 (Windows Server...

Как скачать .xlsx файл с ftp сервера в pandas Dataframe, не сохраняя на компьютер?
Мой код выглядит следующим образом: import ftplib import pandas as pd import xlrd import openpyxl from io import BytesIO ...

Можно ли восстановить удаленую строчку с данными в сохраненном xlsx файле
Случайно удалили и сохранили. Как можно восстановить?

Как заполнить/считать таблицу excel.xlsx данными и не убить весь дизайн таблиц?
Здравствуйте, есть DataGrid на форме из нее надо перенести данные в эксель файл уже с готовым дизайном таблиц. я переношу вот так но...

Работа с xlsx
Здравствуйте ув. форумчане. Сразу перейду к делу: Есть форма, в которой я рассчитываю те или иные формулы, которые впоследствии...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru