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 
  • Wie man zwei Datenrahmen in Python-Pandas kombiniert
  • Pandas / matplotlib: Facettierstangen
  • Wie man einzelne Zellen in Pandas ordnungsgemäß abruft: loc [Index, Spalte] VS get_value (Index, Spalte)
  • Itering durch ein Pandas-Dataframe
  • Python Pandas - Löschen mehrerer Serien aus einem Datenrahmen in einem Befehl
  • Transponieren eines Teils eines Pandas-Dataframs
  • Warum Pandas verwenden qcut return ValueError: Bin Kanten müssen eindeutig sein?
  • Pandas: Änderungsdatum im Dataframe zum gleichen Datumsformat
  • Schneiden von mehreren Spaltenreihen in Panda
  • Exportiere eine LaTeX-Tabelle aus pandas DataFrame
  • Wie man eine Zeitreihe pandas dataframe mit den Indexattributen umwandelt?
  • Python ist die beste Programmiersprache der Welt.