如果我有一個由逗號分隔的單詞字符串列表,如何將其轉換為具有單詞配對和頻率的DataFrame?

2024-04-23 18:29:17 发布

您现在位置:Python中文网/ 问答频道 /正文

梅塔:很抱歉这个标题措辞不当,我真的不知道如何用一句话来描述我要问的问题。你知道吗

我有一个字符串列表,如下所示:

'word1, word2, word3'
'word2, word3'
'word4, word3, word1'
'word2, word4'

我想从这个数组生成一个网络图,它要求我的数据被构造成熊猫的数据帧,如下所示:

source, target, frequency
word1, word2, 1
word1, word3, 1
word2, word3, 2
word2, word4, 1

等等

我该怎么做呢?你知道吗


Tags: 数据字符串标题sourcetarget列表数组网络图
1条回答
网友
1楼 · 发布于 2024-04-23 18:29:17

您可以遍历字符串,用逗号和空格分隔字符串,然后使用IT.combinations形成所有的单词对。一个collections.Counter可以用来计算成对的频率。最后,可以从Counter中的项构建所需的数据帧:

import collections
import itertools as IT
import pandas as pd

data = ['word1, word2, word3',
        'word2, word3',
        'word4, word3, word1',
        'word2, word4']

result = collections.Counter()
for item in data:
    for pair in IT.combinations(item.split(', '), 2):
        result[tuple(sorted(pair))] += 1

df = pd.DataFrame([pair+(freq,) for pair, freq in result.items()], columns=['source', 'target', 'freqency'])
print(df)

收益率

  source target  freqency
0  word3  word4         1
1  word2  word4         1
2  word1  word3         2
3  word1  word2         1
4  word1  word4         1
5  word2  word3         2

相关问题 更多 >