web-dev-qa-db-fra.com

Mettez en forme un nombre avec des virgules pour séparer des milliers en Python

J'ai un dataframe qui a une colonne appelée "Lead Rev" Cette colonne est un champ de nombres tels que (100000 ou 5000 etc.). Je veux savoir comment mettre en forme ces nombres pour montrer des virgules comme mille séparateurs.

Est-ce quelque chose comme: '{:,}'. Format ('Lead Rev')

'Lead Rev' est le nom de ma colonne. J'ai plus de 200 000 lignes dans mon jeu de données.

C'est mon erreur

ValueError Traceback (l'appel le plus récent en dernier) in () ----> 1 '{:,}'. format ('Lead Rev')

ValueError: Impossible de spécifier ',' ou '_' avec 's'.

6
Sandy Tumma

Vous pouvez utiliser apply () pour obtenir le résultat souhaité. Cela fonctionne avec flottant aussi

import pandas as pd

series1 = pd.Series({'Value': 353254})
series2 = pd.Series({'Value': 54464.43})
series3 = pd.Series({'Value': 6381763761})

df = pd.DataFrame([series1, series2, series3])
print(df.head())

         Value
0  3.532540e+05
1  5.446443e+04
2  6.381764e+09

df['Value'] = df.apply(lambda x: "{:,}".format(x['Value']), axis=1)
print(df.head())

             Value
0        353,254.0
1        54,464.43
2  6,381,763,761.0
10
flivan

Pour que tous vos flottants affichent des séparateurs de virgule par défaut, définissez les éléments suivants:

pd.options.display.float_format = '{:,}'.format

https://pandas.pydata.org/pandas-docs/version/0.23.4/options.html

2
jeffhale
class commaConverter:
    """
    add and remove commas to numberstring 1000.00+> 1,000.00
    """
    def __init__(self,price):
        self.price=price
    def addCommas(self):
        price=self.price
        price=str(price)
        try:
            priceSplit = price.split('.')
            price1 = priceSplit[0]
            price2 = priceSplit[1]
        except IndexError:
            price1 = price
            price2 = '00'
        price1 = price1.strip(" ")
        newPrice = ''
        i = 0
        for x in price1[::-1]:
            if i == 3 and x != '-':
                newPrice = x + ',' + newPrice
                i = 1
            else:
                newPrice = x + newPrice
                i += 1
        commaPrice = newPrice + '.' + priceSplit[1]
        return str(commaPrice)
    def removeCommas(self):
        price=self.price
        price=price.replace(',','')
        price = price.replace('$', '')
        return price
0
Eurofut

Les options de regroupement telles que , ne sont prises en charge que pour les types de présentation numériques. Vous devez spécifier un type de présentation numérique. Lisez sur votre options .

0
user2357112