SettingWithCopyWarning和字数统计

时间:2017-10-17 16:21:42

标签: python pandas

我尝试在我的数据框中附加一个新列。它不起作用......嗯......它确实有效,但它总是抛出SettingWithCopyWarnings。

我使用了所有方法proposed here,并搜索了其他Stackoverflow线程以获得解决方案,但我仍然无法到达。

我有一个动态的单词列表,应该作为新列添加到我的DataFrame中。在每一列中,应有一行文字中的单词计数。

import re
import pandas as pd

df = pd.read_csv('manyLinesOfText.csv')

word_lst = ['foo', 'bar', 'spam']

def element_word_count(text, **kwds):
    return float(len(re.findall(kwds['kwds']['countword'], text)))

for word in word_lst:
    df[word] = df['textcolumn'].apply(element_word_count, kdws = {'countword':word})

这样可行,但会引发恼人的警告。

我尝试assign但它根本不起作用,因为assign的语法解释了"字"作为专栏的标题。

我尝试了df.insert,但它抛出了一个NoneType异常,这很奇怪,因为我的df肯定不是NoneType。

我尝试了df.loc[:,word],但确实没有解决任何问题。它起作用,抛出同样的异常。

在整整一天的工作之后,也许我的脑中只有一个结,但我找不到解决方案。

我还认为我对df.apply的使用有点奇怪 - 所以如果有人找到一种更简单的方法来计算给定但动态的单词列表,我会对任何事情持开放态度。

非常感谢!

1 个答案:

答案 0 :(得分:0)

我发现了失败。感谢所有花时间阅读我的帖子的人。 这里的代码实际上没问题。问题在其他地方被发现,在其他地方进行了修正之后,警告在这一部分消失了。