创建数据框形成循环

时间:2019-01-15 01:10:11

标签: python pandas loops dataframe nlp

我需要从循环创建一个数据框。想法是循环将读取文本(train_vs)的数据帧并搜索特定的关键字['govern','data'],然后计算其频率或TF。我想要的是两列的结果,其中每一个文本的单词均为TF。我正在使用的代码如下:

d = pd.DataFrame()
key = ['govern', 'data']
for k in key:
    for w in range(0, len(train_vs)):
        wordcount = Counter(train_vs['doc_text'].iloc[w])
        a_vs = (wordcount[k]/len(train_v.iloc[w])*1)
        temp = pd.DataFrame([{k: a_vs}] )
        d = pd.concat([d, temp])

但是,我得到了两列,但是对于整个文本列,第一个关键字的值和第二个值的nan,然后对整个文本列的值分别是nan和第二个值。因此结果数据框的行数是两倍。

我希望两个值彼此相邻。
非常感谢您的帮助。
谢谢。

1 个答案:

答案 0 :(得分:0)

摘自pandas.concat文档:

  

合并具有重叠列的DataFrame对象,并返回所有内容。相交外的列将填充NaN值。

在进行关键更改循环时,您正在做的是尝试将只有一列('data')的新df(temp)连接到也只有一列({{ 1}}),这就是为什么您得到NAN的半栏。

除了建立数列之外,您可以做的不是连接数百万个数据帧,而是构建一个列。

'gonvern'