Давайте попробуем так:
age_ind = df.index[df['Age'] == '0~4'].tolist()
for i in age_ind:
df.at[i,['2010', '2011', '2012']] = (df.at[i,"2010"]+df.at[i-1,"2010"]),(df.at[i,"2011"]+df.at[i-1,"2011"]),(df.at[i,"2012"]+df.at[i-1,"2012"])
df.drop(df[df.Age == '-1~7'].index)
Вывод:
Geo Age 2010 2011 2012
1 toronto 0~4 7 4 9
2 toronto 5~9 4 5 5
4 bc 0~4 3 6 3
5 bc 5~9 3 1 1
7 mt 0~4 6 5 5
8 mt 5~9 6 6 6
Из здесь :
Прототип: double log2 (double anumber);
Заголовочный файл: math.h (C) или cmath (C ++)
Альтернативно эмулируйте его как здесь
#include <math.h>
...
// Calculates log2 of number.
double Log2( double n )
{
// log(n)/log(2) is log2.
return log( n ) / log( 2 );
}
К сожалению, Microsoft не предоставляет его .
log2 ()
определяется только в стандарте C99, но не в стандарте C90 , Microsoft Visual C ++ не полностью совместим с C99 (черт возьми, не существует ни одного полностью совместимого с C99 компилятора, я полагаю - даже GCC полностью не поддерживает его), поэтому не требуется предоставлять log2 ()
.