2017-06-21 9 views
1
import pandas as pd 
d = pd.DataFrame({'ids':[9,5,7,9,5,9]}) 
c = d.groupby(['ids'], sort=True)['ids'].count() 
>>> c 
ids 
5 2 
7 1 
9 3 
Name: ids, dtype: int64 

Wie kann ich ein Element zu diesem series (c) mit, sagen wir, key = 6 und value = 10 bis Pandas hinzufügen? Die gewünschte Ausgabe sollte sein:Element von 'index' (key) in Serie

>>> c 
ids 
5 2 
6 10 
7 1 
9 3 
Name: ids, dtype: int64 

Antwort

1
c.loc[6] = 10 

Oder

c.at[6] = 10 

Oder

c.set_value(6, 10) 

ein sort_index hinzufügen von Index zu sortieren

c.at[6] = 10 
c.sort_index() 

fallen ausdrücklich, dass in die zweite Position mit aus mit sonst

pd.concat([c.iloc[:1], pd.Series(10, [6]), c.iloc[1:]]) 
+0

Sie die Bestellung durcheinander danken. Darf ich fragen, wie können Sie diese Einzeiler konvertieren, um eine Liste/ein Array von Indizes (die alle demselben Wert entsprechen) zu berücksichtigen? – Tony

+1

@Tony Sie verwenden nur Loc auf diese Weise. c.loc [[6, 7, 8]] = 10 – piRSquared

+0

Ich fragte, weil, wenn ich das versuche, bekomme ich 'KeyError: '[16 17 18] nicht im Index'. (Python 3.5) - außer diese Indizes sind schon da, aber ich frage nach neuen. – Tony

Verwandte Themen