Как разделить список фреймов данных на список значений? - PullRequest
0 голосов
/ 07 ноября 2018

(1) У меня есть список из 29 кадров данных

(2) У меня есть список из 29 значений (все int64)

Я хочу разделить столбец в списке из (1) с каждым в значениях (2) - они находятся в правильном порядке. Я хочу разделить их на

Так, например, я хочу, чтобы 1-й кадр данных (все значения во втором столбце) в списке 1 был разделен на 1-е значение в списке 2. Я хочу, чтобы 2-й кадр данных (все значения во втором столбце) в списке 1 был делится на 2-е значение в списке 2 и так далее. E.g.:

Это 6-й фрейм данных в моем первом списке:

    print(lst_1[6]):

   ITIS  q9036
0   7.0      7
1   2.0      5
2   1.0      4
3   3.0      3
4   5.0      2

Это шестое целое число в моем втором списке, значение 14:

print(lst_2[6]):

array([[14]], dtype=int64

Итак, результат, который я хочу получить, выглядит примерно так:

   ITIS  q9036  Total  Result
0   7.0      7  14     0.50
1   2.0      5  14     0.36     
2   1.0      4  14     0.29
3   3.0      3  14     0.21
4   5.0      2  14     0.14

Я хочу сделать это для всех 29 фреймов данных для всех 29 целых чисел

Другие примечания: у второго столбца всегда другое имя

1 Ответ

0 голосов
/ 07 ноября 2018

Используйте понимание списка с zip и assign, потому что каждое целое число находится в массиве numpy, необходимо выбрать с помощью [0][0]:

dfs = [df.assign(total = i[0][0], 
                 result = df.iloc[:, -1] / i[0][0]) for i, df in zip(lst_2, lst_1)]

EDIT:

dfs = [df.assign(total = i[0][0], 
                 a = df.iloc[:, -1] / i[0][0])
        .rename(columns={'a':'{}_pct'.format(df.columns[-1])}) for i, df in zip(lst_2, lst_1)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...