gpt4 book ai didi

Python:比较具有不同键的两个计数器对象

转载 作者:太空宇宙 更新时间:2023-11-04 09:42:45 26 4
gpt4 key购买 nike

我有两个字符串,我想对它们进行分词,然后比较差异

s1 = 'one two shmoo'
s2 = 'one one two'

我的第一个想法是将它们都变成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 也应该是 1。解决方案不必使用 pandas

最佳答案

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()

关于Python:比较具有不同键的两个计数器对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51031822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com