用熊猫中的另一列求和整个列

时间:2018-07-06 08:35:59

标签: python pandas dataframe sum

我正在尝试按国家/地区汇总整列,但是当我使用

my_df.groupby('COUNTRY').VALUES.mean()

它抛出一个

DataError: No numeric types to aggregate

当我使用

my_df.groupby('COUNTRY').VALUES.sum()

它会产生非常大的值,这些值与实际情况相去甚远(也许是通过将它们作为字符串添加在一起?)

是将列中的值解释为字符串,还是我以错误的方式使用该函数?

我正在尝试完全按照1:45 https://www.youtube.com/watch?v=qy0fDqoMJx8

的要求完成此人的操作

即“值”列包含我想按每个国家求和的整数。

3 个答案:

答案 0 :(得分:0)

该列中的值被解释为字符串,它们说明了如何在此问题中转换数据类型

Change data type of columns in Pandas

答案 1 :(得分:0)

我了解您正在尝试对国家/地区进行计数,但是尚不清楚您是否要对国家/地区进行计数,或者是基于另一个变量: 尝试:        Error in eigen(w, symmetric = TRUE) : infinite or missing values in 'x' In addition: Warning message: In complete(x.tre) : NAs introduced by coercion 在同一列中,或者总和基于另一个变量: my_df['COUNTRY'].value_counts()

您的问题不清楚,您应该显示数据框

答案 2 :(得分:0)

在执行任何计算之前,您需要将VALUES系列转换为数字类型。例如,要转换为整数:

# convert to integers, non-convertible values will become NaN
my_df['VALUES'] = pd.to_numeric(my_df['VALUES'], downcast='integer', errors='coerce')

# perform groupby as normal
grouped = my_df.groupby('COUNTRY')['VALUES'].mean()