2017-08-15 33 views
11

Mam DataFrameSumowanie kolumn do utworzenia nowego dataframe

   A    B    C   D 
2015-07-18 4.534390e+05 2.990611e+05 5.706540e+05 4.554383e+05 
2015-07-22 3.991351e+05 2.606576e+05 3.876394e+05 4.019723e+05 
2015-08-07 1.085791e+05 8.215599e+04 1.356295e+05 1.096541e+05 
2015-08-19 1.397305e+06 8.681048e+05 1.672141e+06 1.403100e+06 
... 

po prostu chcą podsumować wszystkie kolumny, aby otrzymać nowy dataframe

 A B C D 
sum s s s s 

z sum columnwise a następnie wydrukować go z to_csv() . Kiedy używać

df.sum(axis=0) 
print(df) 


A  9.099377e+06 
B  5.897003e+06 
C  1.049932e+07 
D  9.208681e+06 
dtype: float64 
+1

Rozumiem pierwszą połowę wniosku. Druga połowa jest dla mnie niejasna. – pylang

Odpowiedz

12

można przekształcić df.sum() do DataFrame i przeniesienia go:

In [39]: df.sum().to_frame('sum').T 
Out[39]: 
      A   B   C   D 
sum 2358458.2 1509979.49 2766063.9 2370164.7 
3

Zastosowanie DataFrame konstruktora:

df = pd.DataFrame(df.sum().values.reshape(-1, len(df.columns)), 
        columns=df.columns, 
        index=['sum']) 
print (df) 
      A   B   C   D 
sum 2358458.2 1509979.49 2766063.9 2370164.7 
4

Nieco krótsza wersja pd.DataFrame jest (z kredytu jezrael w celu uproszczenia):

In [120]: pd.DataFrame([df.sum()], index=['sum']) 
Out[120]: 
      A   B   C   D 
sum 2358458.2 1509979.49 2766063.9 2370164.7 
+0

Hmmm, następnie 'pd.DataFrame ([df.sum()], index = ['sum'])' jest najprostszy – jezrael

0

Myślę najprostszą jest df.agg([sum])

df.agg([sum]) 
Out[40]: 
      A   B   C   D 
sum 2358458.2 1509979.49 2766063.9 2370164.7