Использование значения ячейки из двух разных информационных фреймов для выполнения расчетов (панды) - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть эти 2 кадра данных

dffouten:

                     index          opmerking
DateTime                                     
2018-11-01 08:05:41     20         photocells
2018-11-01 11:40:55     42  trap/roodnoodstop
2018-11-02 07:24:02     62  trap/roodnoodstop

и

dffm:

                      Counter
traploopext             4

Что я хочу сделать, это разделитьколичество раз trap/noodstop по traploopext и встречному значению 4, так что я сделал:

dffouten = dffouten.groupby('opmerking').count()

, что дает мне

                   index
opmerking               
photocells             1
trap/roodnoodstop      2

, а затем

percentage = (dffm.loc['rectloopext'] / dffouten.loc['trap/roodnoodstop']) * 100

но это не работает, странно для меня то, что если использовать:

percentage = (dffm.loc['rectloopext'] / 2) * 100

, то это дает мне ответ.

1 Ответ

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

Кажется необходимым указать column в функции loc для возврата scalar, для значений счетчика на столбец используется value_counts, поэтому для скаляра используется loc и, наконец, получить делениемежду 2 скалярами:

dffouten = dffouten['opmerking'].value_counts()
print (dffouten)
trap/roodnoodstop    2
photocells           1
Name: opmerking, dtype: int64

#for Series select by index
print (dffouten.loc['trap/roodnoodstop'])
2

#for DataFrame select by index and column
print (dffm.loc['traploopext', 'Counter'])
4

percentage = (dffm.loc['traploopext', 'Counter'] / dffouten.loc['trap/roodnoodstop']) * 100
print (percentage)
200.0

Более подробную информацию можно найти здесь

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