Campaign ID Revenue Total
601 $2,690
601 $817
601 $0
649 $4,339
10901 $7,273
我上面有一张桌子。想要对数据应用groupby函数并应用总和(超过Revenue_total)。由于Revenue_total是对象数据类型,因此Pandas给出了NA值。任何帮助
import pandas as pd
path = r"C:\Users\roy\Google Drive\Work\Backlog\test.csv"
df = pd.read_csv(path)
df[['Campaign ID','Revenue Total']].head()
df.groupby(['Campaign ID'])[['Revenue Total']].sum()
最佳答案
如果您的数据文件看起来像
Campaign ID Revenue Total
601 $2,690
601 $817
601 $0
649 $4,339
10901 $7,273
然后,您可以删除
$
和逗号,然后使用解析为DataFrameimport pandas as pd
df = pd.read_csv('data', sep='\s{2,}',
converters={'Revenue Total':lambda x: x.lstrip('$').replace(',','')})
Campaign ID Revenue Total
0 601 2690
1 601 817
2 601 0
3 649 4339
4 10901 7273
您可能想尝试仅添加
converters={'Revenue Total':lambda x: x.lstrip('$').replace(',','')}
呼叫
pd.read_csv
。那就是剥离$
和逗号的原因。您可能不需要
sep='\s{2,}'
-只是为了让我阅读上面显示的格式的数据。您的格式可能有所不同,但是您没有发布它,所以我不知道它是什么...关于python - Python — Pandas :如何将aggfunc应用于货币格式的数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22108562/