Ich habe das folgende Skript, von denen ich eine einfache Gruppe wollen durch:Wie gibst du nur eine Gruppe in Pandas zurück?
# import the pandas module
import pandas as pd
from openpyxl import load_workbook
writer = pd.ExcelWriter(r'D:\temp\test.xlsx', engine='openpyxl')
# Create an example dataframe
raw_data = {'Date': ['2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13','2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13'],
'Portfolio': ['A', 'A', 'A', 'A', 'A', 'A', 'B', 'B','B', 'B', 'B', 'C', 'C', 'C', 'C', 'C', 'C'],
'Duration': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
'Yield': [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1],}
df = pd.DataFrame(raw_data, columns = ['Date', 'Portfolio', 'Duration', 'Yield'])
dft = df.groupby(['Date', 'Portfolio', 'Duration', 'Yield'], as_index =False)
Dies schafft eine Pandas Gruppe von Objekt.
Ich möchte dann ausgeben, dies zu übertreffen:
dft.to_excel(writer, 'test', index=False)
writer.save()
aber es gibt einen Fehler zurück:
AttributeError: Cannot access callable attribute 'to_excel' of 'DataFrameGroupBy' objects, try using the 'apply' method
Warum sollte ich eine Anwendung benötigen? Ich möchte nur die Gruppe nach Ergebnissen, um Duplikate zu entfernen.
Try 'dft.apply (lambda x: x.to_excel (Schriftsteller, 'test', index = Falsch)) ' – EdChum
@EdChum Das funktioniert nicht, es gibt die 6 Zeilen für Portfolio 'C' zurück – toasteez
Was haben Sie vor? Ein 'groupby' ist für Aggregationen in Gruppen gedacht. Warum setzen Sie den Index nicht einfach auf diese Spalten und geben ihn in Excel aus? – EdChum