熊猫在执行sum()等操作时处理负值



我正在寻找一种从对象转换Revenue列的方法到数字,但仍然保持负值,因为我正试图在下进行操作

df

customerId  Revenue
3443        1,323.90
4325        -442
5833        -101
9424        1,539.20
df.types:
customer_ID: int 
Revenue: object
df['Revenue'].sum()

这是我迄今为止尝试过但没有成功的方法:这只是将负值转换为正值

df["Revenue"] = pd.to_numeric(df["Revenue"].str.strip().str.replace(",", "")).abs()

通过strip()replace()astype()方法尝试:

df['Revenue']=df['Revenue'].str.strip().str.replace(',','').astype(float)

通过strip()replace()to_numeric()方法:

df['Revenue']=pd.to_numeric(df['Revenue'].str.strip().str.replace(',',''),errors='coerce')

你可以做这样的事情-

>>> import pandas as pd
>>> 
>>> d = {
... 
...   'customer_id':[3443,4325,5833,9424]
...   ,'Revenue':['1,323.90',-442,-101,'1,539.20']
... }
>>> 
>>> df = pd.DataFrame(d)
>>> 
>>> 
>>> df['Revenue']=df.loc[:,'Revenue'].apply(lambda x: str(x).replace(',','')).astype(float)
>>> df
customer_id  Revenue
0         3443   1323.9
1         4325   -442.0
2         5833   -101.0
3         9424   1539.2
>>> 

最新更新