使用2个不同数据框中的像元值进行计算(熊猫)

时间:2018-11-27 11:37:19

标签: python pandas

我有这两个数据框

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 :(得分:0)

似乎有必要在函数column中指定loc来返回scalar,因为使用了每列的计数值value_counts,所以使用了标量loc并最终得到两个标量之间的除法:

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

可能找到更多信息,here