Отсутствие данных при экспорте фрейма данных из панд в Excel - PullRequest
1 голос
/ 24 мая 2019

Я создал программу для удаления дублирующихся строк из файла Excel с помощью панд.После успешного выполнения этого я экспортировал новые данные из pandas в Excel, однако в новом файле Excel, похоже, отсутствуют данные (особенно столбцы с датами).Вместо того чтобы показывать фактические данные, он просто показывает «##########» в строках.

Код:

import pandas as pd
data = pd.read_excel('test.xlsx')
data.sort_values("Serial_Nbr", inplace = True)
data.drop_duplicates(subset ="Serial_Nbr", keep = "first", inplace = True)
data.to_excel (r'test_updated.xlsx')

До и после экспорта:

date                            date

2018-07-01                  ##########    
2018-08-01                  ##########    
2018-08-01                  ##########

Ответы [ 3 ]

2 голосов
/ 24 мая 2019

это означает, что ширина ячейки не может отображать данные, попробуйте увеличить ширину ячейки.

ширина ячейки слишком узкая:

после увеличения ширины ячейки:

, чтобы правильно экспортировать данные в формате datetime, необходимо добавить код формата дляЭкспорт в Excel:

import pandas as pd

data = pd.read_excel('Book1.xlsx')
data.sort_values("date", inplace = False)
data.drop_duplicates(subset ="date", keep = "first", inplace = True)

#Writer datetime format
writer = pd.ExcelWriter("test_updated.xlsx",
                        datetime_format='mm dd yyyy',
                        date_format='mmm dd yyyy')

# Convert the dataframe to an XlsxWriter Excel object.
data.to_excel(writer, sheet_name='Sheet1')
writer.save()
0 голосов
/ 24 мая 2019

Относительно оригинального запроса данных я согласен с ответом ALFAFA.Здесь я пытаюсь изменить размер столбца, чтобы конечному пользователю не нужно было делать то же самое вручную в xls.

Шаги будут:

  • Получить имя столбца (согласно xls, имена столбцов начинаются с 'A', 'B', 'C' и т. Д.)
colPosn = data.columns.get_loc('col#3')   # Get column position
xlsColName = chr(ord('A')+colPosn)        # Get xls column name (not the column header as per data frame). This will be used to set attributes of xls columns
  • Получите ширину изменения размера столбца 'col # 3', получив длину самой длинной строки в столбце
maxColWidth = 1 + data['col#3'].map(len).max()  # Gets the length of longest string of the column named 'col#3' (+1 for some buffer space to make data visible in the xls column)
  • use column_dimensionsАтрибут [colName] .width для увеличения ширины столбца xls
data.to_excel(writer, sheet_name='Sheet1', index=False) # use index=False if you dont need the unwanted extra index column in the file
sheet = writer.book['Sheet1']
sheet.column_dimensions[xlsColName].width = maxColWidth # Increase the width of column to match with the longest string in the column
writer.save()
  • Замените последние две строки из сообщения ALFAFA на вышеприведенные блоки (все разделывыше), чтобы получить ширину столбца, настроенную для 'col # 3'
0 голосов
/ 24 мая 2019

########## отображается, когда ширина ячейки слишком мала для отображения ее содержимого. Вам нужно увеличить ширину ячеек или уменьшить их содержание

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...