2016-08-01 9 views
0

Here ist meine Datenmenge.Hinzufügen von Headern zum verarbeiteten Datenrahmen in Panda

Ich erstelle einen neuen Pandas Datenrahmen (Ptocol) von einem vorherigen Datenrahmen (Daten) mit den .groupby und .size Methoden wie unten gezeigt. Dies verhält sich wie erwartet, jedoch ist das Ergebnis ein Datenrahmen ohne Spaltenüberschriften.

Ich versuchte und überprüfte die Lösung here für eine sehr lange Zeit. Aber es funktioniert nicht für mich. Unten ist mein Code.

import pandas as pd 
import numpy 

data = pd.read_csv('first.csv') 
ptocol = data.groupby(["Protocol"], as_index=False).size().rename(columns={0:'NumOfPackets'}) # dosn't work 
#ptocol = data.groupby(["Protocol"], as_index=False).count() #doesn't work 
print ptocol 
ptocol.to_csv('protocol.csv') 

Tatsächliches Ergebnis (protocol.csv):

0x200e,26 
ARP,100746 
ATMTCP,48 
BOOTP,123 
BZR,4 
... 
... 

erwartete Ergebnis (protocol.csv):

Protocol,NumOfPackets 
0x200e,26 
ARP,100746 
ATMTCP,48 
BOOTP,123 
BZR,4 
... 
... 

Irgendwelche Ideen/Anregung sind willkommen

Antwort

0

.size() gibt eine Serie Objekt, können Sie reset_index() verwenden, um einen Datenrahmen zu verwandeln, versuchen Sie stattdessen:

ptocol = data.groupby("Protocol").size().rename('NumOfPackets').reset_index() 
ptocol.to_csv('protocol.cv', index = False) 

Das gibt so etwas, nicht die gleichen Daten wie bei Ihnen, aber das Format ist das, was Sie suchen :

Symbol,NUM 
A,5 
AA,5 
AAAP,5