Найти - Пользователи
Полная версия: Формат типа данных в столбцах
Начало » Python для новичков » Формат типа данных в столбцах
1
havoc_mind
Добрый день,

В файле Excel во всех столбцах с датами есть артефакты (пробелы, “длинные” пробелы), и сам формат даты Excel не воспринимает как дату без ручного преобразования: сам файл в приложении “Python file”.

Я смог (вроде бы ) решить часть задачи: весь файл отчищается от артефактов для типа object (так Python воспринимает столбцы с датами) и конкретный столбец преобразуется в тип “дата”.

Но мне необходимо преобразовать в дату все столбцы, выбрав их по ключевому слову “Дата” (“дата”).

Помогите, пожалуйста, по следующим вопросам:
1. Можно задать эти столбцы списком? но он будет фиксированный по набору элементов…
Поэтому лучше по ключевому слову, если файл в дальнейшем будет менять формат.

2. Можно задать более короткий формат даты, чем "'datetime64'"?
Просто YYYY-MM-DD.

Буду признателен за помощь.

Мой код ниже:
import pandas as pd

import numpy as np

loan_portfel = pd.read_excel("*/Python file.xlsx",sheet_name = 'Sheet1', header=[0], skiprows = [0, 1, 2, 3, 5])

df = pd.DataFrame(loan_portfel) #, columns = ['Дата'])

#pd.set_option('display.max_rows', None, 'display.max_columns', 114)

def strip_obj(col):

if col.dtypes == object:

return (col.astype(str)

.str.strip()

.replace({'nan': np.nan}))

return col

df = df.apply(strip_obj, axis=0)

df['Дата досрочного погашения транша'] = df['Дата досрочного погашения транша'].astype('datetime64[ns]')

df.to_excel("*/output.xlsx")






doza_and
Все советы уже написаны в http://python.su/forum/topic/40556/

havoc_mind
Можно задать эти столбцы списком?
1. Хороший эксел - мертвый эксел. :)))

т.е Если правки небольшие, то ваш подход понятен. В других случаях лучше написать импорт данных из эксела в нормальную СУБД. Это обычно элементарно делается выгрузкой в csv с последующим импортом таблицы. А потом если потребуется экспорт из базы данных в эксел. сразу уйдут все вопросы с неправильным форматом или схемой отпадут вопросы как в пандасе фильтровать по именам колонок и т.п..

2. Помещайте код в теги code иначе никто его читать не будет.


havoc_mind
Можно задать более короткий формат даты, чем "'datetime64'“?
Можно задать любой формат даты при переводе ее в строку.
https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior
НО!! Похоже вы или я что-то не понимаем. В exel надо пихать datetime а не строку. А способ отображения времени задается в exel а не в питоне. goto exel форум.

p.s.
я бы еще рекомендовал не пользоваться pandas. Он большой и сложный. Явно сложнее чем требуется для экспорта данных в csv
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB