Campaign ID Revenue Total
601 $2,690
601 $817
601 $0
649 $4,339
10901 $7,273
我上面有一张桌子。想要将groupby函数应用于数据并应用sum(over revenue_total)。 Pandas给出NA值,因为revenue_total是对象数据类型。任何帮助
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()
答案 0 :(得分:1)
您的数据文件存在问题。
如果您执行以下操作
然后运行你的代码......
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()
print df.groupby(['Campaign ID'])[['Revenue Total']].sum()
将给出此结果
Revenue Total
Campaign ID
601 3507
649 4339
10901 7273
答案 1 :(得分:0)
如果您的数据文件是
Campaign ID Revenue Total
601 $2,690
601 $817
601 $0
649 $4,339
10901 $7,273
然后你可以删除$
和逗号并使用
import 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,}'
- 这只是为了让我能够根据上面显示的格式读取数据。你的格式可能不同,但你没有发布,所以我不知道它是什么......