python 数据帧统计单词出现次数
python dataframe count word occurrences
我在这里搜索了很多,但找不到答案。
我有一个带有“描述”列的数据框,其中包含一个长字符串,
我正在尝试计算特定单词“restaurant”的出现次数,
df['has_restaurants'] = 0
for index,text in enumerate(df['Description']):
text = text.split()
df['has_restaurants'][index] = (sum(map(lambda count : 1 if 'restaurant' in count else 0, text)))
是否执行了上述操作并且有效,但它看起来不是一个好方法并且它也会生成此“错误”:
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
df['has_restaurants'][index] = (sum(map(lambda count : 1 if 'restaurant' in count else 0, text)))
您可以使用 Python 的原生 .count()
方法:
df['has_restaurants'] = 0
for index,text in enumerate(df['Description']):
df['has_restaurants'][index] = text.count('restaurant')
您可以使用 .str.count
方法简化它,考虑以下简单示例
import pandas as pd
df = pd.DataFrame({"description":["ABC DEF GHI","ABC ABC ABC","XYZ XYZ XYZ"]})
df['ABC_count'] = df.description.str.count("ABC")
print(df)
输出
description ABC_count
0 ABC DEF GHI 1
1 ABC ABC ABC 3
2 XYZ XYZ XYZ 0
我在这里搜索了很多,但找不到答案。 我有一个带有“描述”列的数据框,其中包含一个长字符串, 我正在尝试计算特定单词“restaurant”的出现次数,
df['has_restaurants'] = 0
for index,text in enumerate(df['Description']):
text = text.split()
df['has_restaurants'][index] = (sum(map(lambda count : 1 if 'restaurant' in count else 0, text)))
是否执行了上述操作并且有效,但它看起来不是一个好方法并且它也会生成此“错误”:
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
df['has_restaurants'][index] = (sum(map(lambda count : 1 if 'restaurant' in count else 0, text)))
您可以使用 Python 的原生 .count()
方法:
df['has_restaurants'] = 0
for index,text in enumerate(df['Description']):
df['has_restaurants'][index] = text.count('restaurant')
您可以使用 .str.count
方法简化它,考虑以下简单示例
import pandas as pd
df = pd.DataFrame({"description":["ABC DEF GHI","ABC ABC ABC","XYZ XYZ XYZ"]})
df['ABC_count'] = df.description.str.count("ABC")
print(df)
输出
description ABC_count
0 ABC DEF GHI 1
1 ABC ABC ABC 3
2 XYZ XYZ XYZ 0