我有这两个数据框
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
它给了我答案。
答案 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