Python панды: получить конкретную строку в Excel и сохранить на новый лист - PullRequest
0 голосов
/ 05 октября 2018

У меня есть этот образец Excel с образцами данных: enter image description here

Моя проблема в том, как получить все строки с одинаковым EmployeeID и сохранить их на новом листе.Например, на рисунке выше, как я могу сохранить строки с желтым цветом на новом листе, но с тем же файлом Excel.

У меня есть этот код, но он просто создает новый лист:

writer = ExcelWriter('Employee Timesheet.xlsx')
df.insert(loc=0, column='Number', value=range(1,max_row+1-4))


for i in range(5,max_row+1):
  for j in range(2,3):
    cell_obj=ws.cell(row=i,column=j)
    cell_obj1=ws.cell(row=i+1,column=j)
  if cell_obj.value != cell_obj1.value:
    #sample only on creating a new sheet
    counter = 5
    for count in range(1,counter):
        sheet_name = 'Sheet%s' % count
        df.to_excel(writer, sheet_name=sheet_name, index=False)

writer.save()

Пожалуйста, кто-нибудь подскажет, как я могу выполнять итерации по строкам и сохранять все на новом листе.Спасибо!

1 Ответ

0 голосов
/ 05 октября 2018

Надеюсь, это может оказаться полезным, у меня есть такой фрейм данных:

#!/usr/bin/python
from numpy import nan
import pandas as pd

my_df=pd.DataFrame({'ID':['Sample1', 'Sample1', 'Sample1', 'Sample1', 'Sample2', 'Sample2', 'Sample2', 'Sample2', 'Sample3', 'Sample3'],
'Purchase':[4, 5, 6, 7, 8, 9, 10, 11, 12, 13],'item':['Item1', 'Item2', nan, 'Item4', 'Item5', 'Item6', 'Item7', nan, nan, nan],})
my_df
      ID        Purchase   item
0     Sample1         4  Item1
1     Sample1         5  Item2
2     Sample1         6    NaN
3     Sample1         7  Item4
4     Sample2         8  Item5
5     Sample2         9  Item6
6     Sample2        10  Item7
7     Sample2        11    NaN
8     Sample3        12    NaN
9     Sample3        13    NaN

Образцы с дублирующимися значениями в первом столбце могут быть извлечены в словарь, а затем в отдельные файлы CSV, которые также могут быть использованыс Excel:

dict_of_dataframe = {k: v for k, v in my_df.groupby('ID')} # Group based on ID, 
for key,value in dict_of_companies.items():
    with open(key, 'w+') as f:
        f.write(str(value))

f.close()

Это будет генерировать CSV-файлы на основе значений, которые дублируются в первом столбце.

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