Ich möchte den Mittelwert des absoluten Wertes eines gruppierten Objekts berechnen.Mittelwert des absoluten Wertes von groupby Objekt Pandas
I.e.
grouped = df.groupby([pd.TimeGrouper(3MS)])
dct['x'] = grouped['profit'].agg('mean')/grouped['cost'].abs().agg('mean')
Der obige Code führt jedoch zu einem Fehler. Ich habe verschiedene Varianten des obigen Codes ausprobiert, aber bisher führen alle zu Fehlern.
Es muss einen einfachen Weg dafür geben.
Update:
Dies ist der Datenrahmen, die vi pd.TimeGrouper (3MS) gruppiert ist. Ich möchte den absoluten Wert der Spaltenkosten 1 nehmen und dann den Mittelwert berechnen.
cost1 cost2 cost3 cost4
date
2016-03-31 -490.60 -118.10 -344.87 -91.44
2016-04-30 -188.74 -55.99 -259.23 -75.16
2016-05-31 -158.62 -43.58 -176.37 -21.98
Ich versuchte grouped['cost1'].abs().mean()
zu tun, aber ich habe:
/Users/User1/anaconda/lib/python2.7/site-packages/pandas/core/groupby.pyc in __getattr__(self, attr)
493 return self[attr]
494 if hasattr(self.obj, attr):
--> 495 return self._make_wrapper(attr)
496
497 raise AttributeError("%r object has no attribute %r" %
/Users/User1/anaconda/lib/python2.7/site-packages/pandas/core/groupby.pyc in _make_wrapper(self, name)
507 "using the 'apply' method".format(kind, name,
508 type(self).__name__))
--> 509 raise AttributeError(msg)
510
511 # need to setup the selection
AttributeError: ("Cannot access callable attribute 'abs' of 'SeriesGroupBy' objects, try using the 'apply' method", u'occurred at index 0')
Können Sie einige Beispieldaten posten und was ist Ihr Fehler? Ansonsten raten wir, was hier falsch ist. – ako
Ich habe die Informationen hinzugefügt, die Sie vorgeschlagen haben. Danke für das Angebot zu helfen. – codingknob