「Lead Rev」という列があるデータフレームがあります。この列は、(100000や5000など)のような数字のフィールドです。これらの数値をフォーマットして、コンマを3桁の区切り記号として表示する方法を知りたい。
次のようなものですか: '{:、}'。format( 'Lead Rev')
「Lead Rev」は私の列名です。データセットに200,000行以上あります。
ValueErrorトレースバック(最後の最後の呼び出し)in()----> 1 '{:、}'。format( 'Lead Rev')
ValueError:「s」とともに「、」または「_」を指定することはできません。
すべてのフロートにデフォルトでカンマ区切りを表示するには、次を設定します。
pd.options.display.float_format = '{:,}'.format
https://pandas.pydata.org/pandas-docs/version/0.23.4/options.html
Apply()を使用して、目的の結果を取得できます。これはフローティングでも動作します
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
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
,
などのグループ化オプションは、数値表示タイプでのみサポートされています。数値表示タイプを指定する必要があります。 options を読んでください。
Applyまたはstackメソッドを使用できます
df.apply(lambda x: x.str.replace(',','.'))
df.stack().str.replace(',','.').unstack()