gpt4 book ai didi

python - 根据值在另一个数据帧中的频率将值附加到一个数据帧

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

我有两个dataframes,df1是一个groupby的乘积,或者df.groupby('keyword'):

df1

keyword string

A "This is a test string for the example"
"This is also a test string based on the other string"
"This string is a test string based on the other strings"
B "You can probably guess that this is also a test string"
"Yet again, another test string"
"This is also a test"

和df2

这是一个空的数据框,现在我还有一个特定值的列表:

keyword_list = ['string', 'test']

基本上,我想计算 keyword_listdf1 中每个词的出现频率,以及出现最多的词将该词附加到特定列中基于 df1 中关键字的新数据框,因此 df2 的 'A' 被分配了 df1 的 string 列中出现次数最多的值。

理想情况下,因为 'string' 是 df1 的 A 关键字列中出现次数最多的值,所以它被分配给 string 等等。

df2

keyword High_freq_word

A "string"
B "test"

如果您需要澄清或有道理,请告诉我!

更新:

@anky_91 提供了一些很棒的代码,但是输出有点尴尬

df['matches'] = df.description.str.findall('|'.join(keyword_list))

df.groupby(odf.Type.ffill()).matches.apply(lambda x: ''.join(mode(list(chain.from_iterable(x)))[0]))

得到你

df1

keyword     string                                                     

A "This is a test string for the example"
"This is also a test string based on the other string"
"This string is a test string based on the other strings"
B "You can probably guess that this is also a test string"
"Yet again, another test string"
"This is also a test"

但是它添加了一个新列:

matches

['string','test']
['test', 'string','string]
[etc...]

我可以想出一种方法将其转换为数字,然后将该值分配给该列,但更大的问题是将这个新列附加到新数据框。

因为它是一个 groupby,所以有几个重复值,我试图找到一种 pythonic 方式将“最常用词”映射到关键字本身,而不是基于关键字列表的整个模式。

最佳答案

据我了解,您可以执行以下操作:

from itertools import chain
from scipy.stats import mode

keyword_list = ['string', 'test']
df['matches']=df.string.str.findall('|'.join(keyword_list)) #find all matches
df.groupby(df.keyword.ffill()).matches.apply(lambda x: ''.join(mode(list(chain.from_iterable(x)))[0]))

keyword
A string
B test
Name: matches, dtype: object

关于python - 根据值在另一个数据帧中的频率将值附加到一个数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56346189/

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