我有两个要用词标记的字符串,然后比较差异
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);
} );
。
答案 0 :(得分:4)
将sub
与fill_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()