数据透视表不添加值,而是连接值

2024-10-01 17:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用熊猫做一个透视表

ns = pd.read_csv('latest_sg.csv')
sfdc = pd.read_csv('report1.csv')

匹配要查找的列

ns.rename(columns={'accountid':'Account ID'},inplace = True)

瓦卢库普

lookup = pd.merge(ns,sfdc[['Account ID','Account Status']],on=['Account ID'],how='left')
lookup = lookup.dropna(axis=0, subset=['Account Status'])

透视表

pivot = lookup.pivot_table(index='Account ID',values='gb',aggfunc='sum',fill_value=0)

问题是print(pivot)的输出不返回列“gb”值的总和,而是将这些值串联起来

例如,如果帐户ID为'qwer'有3行,其中'gb'中的值为3,4和5,则输出应为

qwer               12 

但结果是

qwer               345

请帮忙


Tags: csvidreadstatusaccountsfdcsglookup
1条回答
网友
1楼 · 发布于 2024-10-01 17:31:58

您的列很可能是一个对象和一个整数,连接的字符串是预期的行为,请使用

df[col] = pd.to_numeric(df[col])

print(df.dtypes)检查列数据类型

如果需要忽略数值列中的字符串,可以添加另一个参数将非数值转换为nan

pd.to_numeric(df[col], errors='coerce')

为了进一步说明这一点

1 + 1 
>> 2
'1' + '1'
>> '11'

相关问题 更多 >

    热门问题