Python-Pandas Neue Spalte mit Groupby erstellen (). Summe ()

Versuchen, eine neue Spalte mit der groupby-Berechnung zu erstellen. In dem unten stehenden Code bekomme ich die korrekt berechneten Werte für jedes Datum (siehe Gruppe unten), aber wenn ich versuche, eine neue Spalte (df ['Data4']) zu erstellen, bekomme ich NaN. Also versuche ich, eine neue Spalte im Dataframe mit der Summe von 'Data3' für alle Daten zu erstellen und diese auf jede Datumszeile anzuwenden. Zum Beispiel ist 2015-05-08 in 2 Reihen (insgesamt 50 + 5 = 55) und in dieser neuen Spalte möchte ich 55 in beiden Reihen haben.

import pandas as pd import numpy as np from pandas import DataFrame df = pd.DataFrame({'Date': ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'], 'Sym': ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'], 'Data2': [11, 8, 10, 15, 110, 60, 100, 40],'Data3': [5, 8, 6, 1, 50, 100, 60, 120]}) group = df['Data3'].groupby(df['Date']).sum() df['Data4'] = group 

One Solution collect form web for “Python-Pandas Neue Spalte mit Groupby erstellen (). Summe ()”

Sie wollen transform wird eine Serie zurückgeben, wobei der Index auf den df ausgerichtet ist, so dass Sie ihn dann als neue Spalte hinzufügen können:

 In [74]: df = pd.DataFrame({'Date': ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'], 'Sym': ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'], 'Data2': [11, 8, 10, 15, 110, 60, 100, 40],'Data3': [5, 8, 6, 1, 50, 100, 60, 120]})​ df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum') df Out[74]: Data2 Data3 Date Sym Data4 0 11 5 2015-05-08 aapl 55 1 8 8 2015-05-07 aapl 108 2 10 6 2015-05-06 aapl 66 3 15 1 2015-05-05 aapl 121 4 110 50 2015-05-08 aaww 55 5 60 100 2015-05-07 aaww 108 6 100 60 2015-05-06 aaww 66 7 40 120 2015-05-05 aaww 121  In [74]: df = pd.DataFrame({'Date': ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'], 'Sym': ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'], 'Data2': [11, 8, 10, 15, 110, 60, 100, 40],'Data3': [5, 8, 6, 1, 50, 100, 60, 120]})​ df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum') df Out[74]: Data2 Data3 Date Sym Data4 0 11 5 2015-05-08 aapl 55 1 8 8 2015-05-07 aapl 108 2 10 6 2015-05-06 aapl 66 3 15 1 2015-05-05 aapl 121 4 110 50 2015-05-08 aaww 55 5 60 100 2015-05-07 aaww 108 6 100 60 2015-05-06 aaww 66 7 40 120 2015-05-05 aaww 121 
  • So löschen Sie Zeilen aus einem Pandas DataFrame basierend auf einem bedingten Ausdruck
  • Pandas - Plotten eines gestapelten Balkendiagramms
  • Wie erstelle ich ein großes Pandas-Dataframe aus einer SQL-Abfrage, ohne dass du keinen Speicher mehr hast?
  • Pandas: Absturz beim Aufteilen einer Spalte durch den anderen mit Indexsatz
  • Python Pandas DataFrame entfernen leere Zellen
  • Python: Holen Sie sich eine Frequenzzählung basierend auf zwei Spalten (Variablen) in pandas dataframe
  • Pandas schreiben Dataframe zu anderen postgresql Schema
  • Das Pandas-Rolling-Fenster scheint einen Offset zu gerollten Daten einzuführen
  • Python Pandas DataFrame mit nur einer einzigen Nummer gespeichert?
  • Keyerror bei der Verwendung von Pandas in PYTHON 2.7
  • Wie man eckige Klammern als Zitatzeichen in Pandas.read_csv verwendet
  • Python ist die beste Programmiersprache der Welt.