121 Stimmen

Einen einzelnen Spaltenwert in Pandas runden

Gibt es eine Möglichkeit, eine einzelne Spalte in Pandas zu runden, ohne den Rest des Datenrahmens zu beeinflussen?

>>> print(df)
  item  value1  value2
0    a    1.12     1.3
1    a    1.50     2.5
2    a    0.10     0.0
3    b    3.30    -1.0
4    b    4.80    -1.0

Ich habe folgendes versucht:

>>> df.value1.apply(np.round)
0    1
1    2
2    0
3    3
4    5
5    5

Wie mache ich die Daten richtig aussehen lassen:

  item  value1  value2
0    a       1     1.3
1    a       2     2.5
2    a       0     0.0
3    b       3    -1.0
4    b       5    -1.0
5    c       5     5.0

6voto

Es ist nicht erforderlich, eine Lambda-Funktion zu verwenden oder eine Funktion zu erstellen. Es ist einfach. Siehe Beispiel unten

df['decimal_place_2'] = df['decimal_place_2'].round(2)

5voto

Joselin Ceron Punkte 404
saldo_acred['cumsum_prc_saldo'].astype('float').round(2)

1voto

Ramesh Ponnusamy Punkte 991

In meinem Fall habe ich sowohl Zeichenfolgenwerte als auch Dezimalwerte in einzelnen Spalten.

def round_2(x):
    try:
        return round(x,2)
    except:
        return x

df['cur_TMIN_IMD_WeekSum']=df['cur_TMIN_IMD_WeekSum'].apply(round_2)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X