Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 8, 2021 19:39:40

also1
Зарегистрирован: 2019-12-06
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с экселем

Пытаюсь записать данные в эксель,
Изначально первый столбец выглядит так: 05.02.2021 и так бы его и оставить,
но после выполнения кода первый столбец преобразуется в 2021-02-25 00:00:00
и в нужную ячейку ничего не записывается.
Как это можно победить?

 import pandas as pd
wb = pd.read_excel('text4 (2).xls')  # Открытие файла
wb.loc['26.02.2021','Зарплата']='zp'
wb.to_excel('text4 (2).xls',index=False)

Офлайн

#2 Фев. 9, 2021 14:51:01

also1
Зарегистрирован: 2019-12-06
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с экселем

Ни каких вариантов???

Офлайн

#3 Фев. 9, 2021 17:22:00

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Помогите с экселем

also1
Как это можно победить?
also1
Ни каких вариантов???
Есть варианты.
1.- не использовать exel (проблема снимется по определению).
2. Варант помягче не использовать pandas. Вы создаете файл с нуля, всякие хитрости внутренние получаете по умолчанию. Умолчание вас не устраивает. Меняйте одну ячейку например при помощи openxls.
3. Выясните что отвечает за форматирование и поправьте. Тут вам не подскажу. Эксела у меня нет и пользоватья им не собираюсь.



Офлайн

#4 Фев. 9, 2021 17:39:06

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Помогите с экселем

also1
Ни каких вариантов???
у вас в таблице наверное ячейки в формате ‘дата’ стоят вместо ‘текст’
пришлите что показывает принт

 wb = pd.read_excel('text4 (2).xls')
print(wb.columns)




Офлайн

#5 Фев. 9, 2021 19:30:37

also1
Зарегистрирован: 2019-12-06
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с экселем

I:\python\python.exe GALSO/Верстка/Python/Коды/Зряплата01/Vvod4.py
Index(['Дата', ‘Выручка’, ‘Смена’, ‘ЗарплатаЗабрано’, ‘Инкассо’, ‘Зарплата’,
‘ЗП забрано всего’, ‘В сейф всего’],
dtype='object')
Да, в екселе этот столбец в формате дата.т к если сделать в текстовом формате не получится заполнять даты протягиванием , а это нужно.
главная задача записать в нужный столбец и в нужную дату некоторого значения и сохранить файл.

Офлайн

#6 Фев. 9, 2021 19:59:54

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Помогите с экселем

also1
главная задача записать в нужный столбец и в нужную дату некоторого значения
тогда нужно дату делать в формате datetime

Офлайн

#7 Фев. 9, 2021 21:57:33

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Помогите с экселем

вот так можно менять значение по дате,если такая дата есть то значение поменяется

 wb.loc[wb['Дата'] == '26.02.2021','Зарплата'] = 55555

вот так записывать дату из dateframe в строку нужного формата
 date= dt.datetime(2021,2,26).strftime('%d.%m.%Y')
но в excel запишет как общий формат,а не даты и в дату ручками не переделывается, аналогичный результат дает если сразу строку записать ‘26.02.2021’

 dt.date(2008,3,2)
так запишет в формате даты,но в таблице будут отображаться через тире пока сам не переделаешь в менюшке формат->дата,

В общем, та еще морока, когда ни тут,ни там путем не разбираешься,экспериментировать можно долго

Отредактировано xam1816 (Фев. 9, 2021 23:23:03)

Офлайн

#8 Фев. 10, 2021 07:49:00

also1
Зарегистрирован: 2019-12-06
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с экселем

xam1816 Спасибо. Буду пробовать уже с экселем дорабатывать. Чтоб он сам менял формат ячеек при открытии

Офлайн

#9 Фев. 12, 2021 20:26:20

also1
Зарегистрирован: 2019-12-06
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с экселем

С этим вопросом вроде разобрался,
Сейчас не получается получить сумму по столбцу с начала и до определенной даты.
Дата Выручка
01.01.2021 10000
02.01.2021 1000
03.01.2021 10000
04.01.2021 10000
05.01.2021 5000
06.01.2021 15000
07.01.2021 10000
08.01.2021 10000
09.01.2021 1000
10.01.2021 10000
11.01.2021 10000
12.01.2021 5000
13.01.2021 15000
14.01.2021 10000
15.01.2021 15000
Как получить сумму по столбцу “Выручка” с начала и до например 10.01

 vyruchka_vsego = wb['Выручка'][:'2021-01-10 00:00:00'].sum()
выдает ошибку: TypeError: cannot do slice indexing on RangeIndex with these indexers of type str

Отредактировано also1 (Фев. 12, 2021 20:26:57)

Офлайн

#10 Фев. 12, 2021 20:55:10

also1
Зарегистрирован: 2019-12-06
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с экселем

Я придумал только через создание нового фрейма в заданных границах дат.
Это норм или можно умнее?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version