Python:比较两个具有不同键的Counter对象

时间:2018-06-25 21:09:42

标签: python python-2.7 pandas comparison

我有两个要用词标记的字符串,然后比较差异

collections.Counter

我的第一个想法是将它们都变成pd.Series个对象,将它们包装在import pandas as pd from collections import Counter def counter_series(s): return pd.Series(Counter(s.split(' '))) counter_series(s2) - counter_series(s1) 中,然后减去差值。

one      1.0
shmoo    NaN
two      0.0
dtype: float64

但是输出结果表明,这种差异不包括两个字符串中都不存在的单词的计数:

shmoo

如何计算缺失的计数?例如。 pandas上方输出中的值也应为1。解决方案不必使用$(document).ready(function() { $('#dataTable').DataTable( { "scrollY": '50vh', "scrollX": true } ); $('#hidden').fadeTo(300,1); } );

1 个答案:

答案 0 :(得分:4)

subfill_value = 0一起使用:

counter_series(s2).sub(counter_series(s1), fill_value=0)

输出:

one     -1.0
shmoo    1.0
two      0.0
dtype: float64

而且,您可以添加.abs()以获得差值的绝对值:

counter_series(s2).sub(counter_series(s1), fill_value=0).abs()

输出:

one      1.0
shmoo    1.0
two      0.0
dtype: float64

但是,我将使用value_counts代替从集合中导入计数器。

def count_series(x):
   s = pd.Series(x.split(' '))
   return s.value_counts()