import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': ['d','d','d','f','f','f','g','g','g','h','h','h'],
'B': [5,5,6,7,5,6,6,7,7,6,7,7],
'C': [1,1,1,1,1,1,1,1,1,1,1,1],
'S': [2012,2013,2014,2015,2016,2012,2013,2014,2015,2016,2012,2013]
});
df = (df.B + df.C).groupby([df.A, df.S]).sum().unstack(fill_value=0)
print (df)
S 2012 2013 2014 2015 2016
A
d 6 6 7 0 0
f 7 0 0 8 6
g 0 7 8 8 0
h 8 8 0 0 7
Я хочу добавить в подсчете значений, которые были подведены в dataframe в год, а также два дополнительных столбцах [полных лет] и [общее число]Добавить в подсчете значений и столбцов для итогового
EDIT;
Dataframe should look something like this;
S 2012 2012 2013 2013 2014 2014 2015 2015 Tot(sum) Tot(#)
A
d 6 x 6 x 7 x 0 x 19 x
f 7 x 0 x 0 x 8 x 15 x
g 0 x 7 x 8 x 8 x 23 x
h 8 x 8 x 0 x 0 x 16 x
EDIT 2;
@Jezrael, если я хочу выбрать только те строки, которые мне нужны (как обсуждалось в другом вопросе), я столкнулся с проблемами со столбцами, названными одинаковыми. Как мы можем это решить?
EDIT 3;
btw, можно ли использовать общую ссылку для столбца 2012, поэтому мне не нужно менять код в будущем? что-то вроде первого столбца кадра данных; столбец df_without_first = df.drop (первый столбец, ось = 1)
спасибо, выглядит великолепно, однако может мы получить сумму/размер рядом с e в год? – Zanshin
Я не понимаю, вам нужно 'print (pd.concat ([df, df1], axis = 1))'? Или добавить последнюю строку с суммой? – jezrael
Я добавляю последнюю строку как сумму всех значений в год. – jezrael