python - 在 2 个 pandas 数据帧中计数匹配
问题描述
我有 2 个数据框,每行包含文本作为列表。这个叫df
Datum File File_type Text
Datum
2000-01-27 2000-01-27 0864820040_000127_04.txt _04 [business, date, jan, heineken, starts, integr..
我还有一个,df_lm,看起来像这样
List_type Words
0 LM_cnstrain. [abide, abiding, bound, bounded, commit, commi...
1 LM_litigius. [abovementioned, abrogate, abrogated, abrogate...
2 LM_modal_me. [can, frequently, generally, likely, often, ou...
3 LM_modal_st. [always, best, clearly, definitely, definitive...
4 LM_modal_wk. [almost, apparently, appeared, appearing, appe...
我想在 df 中创建新列,其中应计算单词的匹配,例如 df.Text[0] 中的 df_lm.Words[0] 中有多少单词
注意:df 有 ca 500 行,df_lm 有 6 -> 所以我需要在 df 中创建 6 个新列,以便更新后的 df 看起来有点像这样
Datum ...LM_cnstrain LM_litigius Lm_modal_me ...
2000-01-27 ... 5 3 4
2000-02-25 ... 7 1 0
我希望我的问题很清楚。提前致谢!
编辑:我已经完成了。通过创建一个列表并对其进行循环类似,但由于 df_lm 中的列表很长,这不是一个选项。
代码如下所示:
result_list[]
for file in file_list:
count_growth = 0
for word in text.split ():
if word in growth:
count_growth = count_growth +1
a={'Grwoth':count_growth}
result_list.append(a)
解决方案
根据我的评论,你可以尝试这样的事情:
下面的代码必须在循环中运行,其中来自第一个 df 的文本列必须与来自下一个的所有 6 个匹配,并使列的值来自len(c)
desc = df_lm.iloc[0,1]
matches = df.text.isin(desc)
result = df.text[matches]
如果这对您有帮助,请告诉我,否则将更新/删除答案
推荐阅读
- ios - 在 React Native 中访问 Apple 的 Memoji 键盘
- c++ - 将模板的模板成员类型作为模板模板参数传递
- powershell - Powershell通用集合列表不显示多个对象
- go - 嵌套切片未更新
- mapbox - 如何从弹出的地图框中删除“x”(关闭)符号
- r - 如何将带有属性的 XML 转换为 R 中的数据框?
- python - arr[:,[1,0,2] 在代码片段中是什么意思?
- firebase-cloud-messaging - 我需要帮助访问 Firebase 中的 admin.messaging()
- mysql - SQL多并获取不同连接表的总和
- javascript - 通过 AJAX 访问从 Django Rest Framework 返回的数组中的项目时获取“未定义”