Суммирование столбцов фреймов данных из разных фреймов данных

Я нашел способ, используя join:

In [101]:
aggregated = df.groupby('A').sum()['values']
aggregated.name = 'sum_values_A'
df.join(aggregated,on='A')

Out[101]:
   A  B  values  sum_values_A
0  1  1      10            25
1  1  2      15            25
2  2  1      20            45
3  2  2      25            45

У кого-то есть более простой способ сделать это?

1
задан Stacey 11 March 2019 в 13:57
поделиться

1 ответ

Идея заключается в преобразовании имен столбцов date в DatetimeIndex и split из . в MultiIndex:

dfs = [] 
for subdirname in glob.iglob('C:/Users/stacey/WorkDocs/tradeopt/'+filename+'//BBG*/tradeopt.is-pnl*.lzma', recursive=True): 
    out = []
    with lzma.open(subdirname, mode='rt') as file:
        print(subdirname)
        for line in file:
            items = line.strip().split(",")
            out.append(items)
    if len(out) > 0:
        a = pd.DataFrame(out[1:], columns=out[0]).set_index('date')
        a.index = pd.to_datetime(a.index)  
        dfs.append(a)

, а затем используйте concat и sum по именам столбцов:

df = pd.concat(dfs, axis=1).sum(level=0, axis=1)
0
ответ дан jezrael 11 March 2019 в 13:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: