我正在尝试更改列(price),它是groupby中使用的对象数据类型。将此列更改为float有时会保持与原始列相同的小数位数,有时会舍入到一个小数位,有时完全去掉所有的小数位。我想保持浮点值与原来的相同,由于最终的和解,需要准确到小数位。我尝试过使用astye和www.example.com _numeric更改列类型pd.to。理想情况下,price_3和price_4应为93927.82。如有任何帮助,我将不胜感激。
import pandas as pd
d = {'product': ['apples', 'pears', 'grapes', 'oranges'],
'price': ['$93,927.83' , '$9,868.23', '$110,838.10', '$10,093.88']}
df = pd.DataFrame(data=d)
df['price_2'] = df['price'].str.replace('$', '').str.replace(',', '').str.replace('(', '').str.replace(')', '')
df['price_3'] = df['price_2'].astype(float)
df['price_4'] = pd.to_numeric(df['price_2'])
2条答案
按热度按时间0md85ypi1#
您可能需要设置显示精度:
为您提供:
hof1towb2#
尝试将
df['price_3'] = df['price_2'].astype(float)
更改为df['price_3'] = df['price_2'].apply(Decimal)
。