Как назначить текущие значения для каждого столбца с циклами for в Pandas? - PullRequest
0 голосов
/ 17 октября 2019

У меня есть два кадра данных, оба имеют одинаковые формы.

dfA

    2008LG  2007LG  2006LG  2005LG
0   44      65      30      20
1   10      16      56      70
2   65      30      20      122
3   0.0     0.00    679     158
4   0.0     0.00    30      20

dfB

     2008Net    2007Net      2006Net    2005Net
0           0         0            0    452
1           0         0            0    365
2           0         0            0    778
3           0         0            0    78
4           0         0            0    60

Логика расчета: для каждой строки в dfB,начните с самого конца 2005Net столбца и используйте 2005LG - 2005net и получите значение, которое присваивается первым правым столбцам 2005Net.

Например: для первой итерации 2005LG - 2005Net = 20-452 = -432 и присвоить -432 2006Net. и вторая итерация начнется с 2006LG - 2006Net = 30 - -432 = 462 и будет присвоена 2007Net.

ниже мой код, но он не разрезает его, что именно здесь не так?

import pandas as pd
import numpy as np
from tqdm import tqdm

for index in tqdm(range(dfA.shape[0])):
    for col_index in reversed(range(4)):
        the_value = 0
        the_value = dfA[dfA.columns[col_index]].iloc[index] - dfB[dfB.columns[col_index]].iloc[index]       
        dfB[dfB.columns[col_index-1]].iloc[index] = the_value


1 Ответ

0 голосов
/ 18 октября 2019

Попробуйте что-то вроде этого.

for index in reverse(range(4)):
    dfB[index - 1] = dfA.iloc[:, index] - dfB.iloc[:,index] 

Это предполагает, что каждый столбец, который вы хотите вычесть, имеет одинаковую длину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...