我试图找到我的JSON文件的哪些行包含不具有某些单词的文本。我尝试这样做的方式是通过以下方式进行熊猫和正则表达式:
hello my text * can contain * multiple url like *
我们的想法是按行,轴对其进行分组,但我收到以下错误:# import json module for parsing
import json
import re
import pandas
keywords1 = ('economic', 'economy', 'economies', 'Economic', 'Economy', 'Economies')
keywords2 = ('uncertain', 'uncertainty', 'uncertanties', 'Uncertain', 'Uncertainty', 'Uncertanties')
for i in range(2005,2016):
df = pandas.DataFrame([json.loads(l) for l in open('TH500_%d.json' % i)])
# match keywords
matchingbodies = df[~df.body.str.contains("|".join(keywords1))&~df.body.str.contains("|".join(keywords2))].body
# Count by row
counts = matchingbodies.groupby(lambda x: x.axes).agg(len)
print(counts)
。我知道我可能犯了一个愚蠢的错误......干杯
答案 0 :(得分:1)
我认为如果需要groupby index
:
counts = matchingbodies.groupby(df.index).size()
或者:
counts = matchingbodies.groupby(level=0).size()
编辑:
似乎你需要:
matchingbodies = df.loc[(~df.body.str.contains("|".join(keywords1)) &
(~df.body.str.contains("|".join(keywords2))), 'body']