作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含几列标签(字符串)的视频数据框,如下所示:
import pandas as pd
videos = [(1, 'cool video','drama','horror'), (2, 'great video','sports','drama'), (3,'super video','comedy','horror')]
df = pd.DataFrame(data=videos, columns=['video_id', 'title','tag_1','tag_2'])
video_id title tag_1 tag_2
0 1 cool video drama horror
1 2 great video sports drama
2 3 super video comedy horror
然后我有另一个搜索词数据框“df_search_terms”(例如,我可以将其放入列表中)。我想看看这些搜索词是否在其中一列中至少出现一次,如果是这样,在搜索词的数据框中增加一个计数器(也就是说,好吧,我们为视频找到了一次这个词,所以 += 1 )。为了澄清起见,我想知道搜索词在包含 +/- 1000 个视频的数据框中匹配多少次,对于至少一个标签。
search_count=df['tag_1'].str.contains('drama').sum()
df_search_terms.loc[(df_search_terms['search_term'] == 'drama'),'matching_videos'] +=1
df_search_terms 将是这样的:
search_terms = [('drama',0), ('horror',0), ('sports',0)]
df_search_terms = pd.DataFrame(data=search_terms, columns=['search_term', 'number_matching_videos'])
search_term number_matching_videos
drama 0
horror 0
sports 0
我想解决方案在于巧妙地使用 apply 但恐怕我无法弄清楚。
if df.loc[(df['name'] == 'drama') | (df['tag_1'] == 'drama') | (df['tag_2'] == 'drama')]:
df_search_terms.loc[(df_search_terms['search_term'] == 'drama'),'matching_videos'] +=1
ValueError:DataFrame 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
最佳答案
尝试这个:
(df_search_terms['number_matching_videos'] =
df_search_terms['search_term'].map(df.set_index('video_id')
.stack()
.str.get_dummies()
.sum()))
这是另一种方式:
df_search_terms['number_matching_videos'] = (df_search_terms['search_term']
.map((df.loc[:,df.columns.str.contains('tag')]
.stack()
.str.extractall('({})'.format(df_search_terms['search_term'].str.cat(sep='|')))[0]
.str.get_dummies()
.sum())))
关于python - Pandas:如果字符串存在于几列中的任何一列中,我想对计数求和,并将此计数添加到具有搜索词的另一个数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68289191/
我正在尝试使用描述的方法将数据表转换为字典 here , 但我得到一个错误 Cannot implicitly convert type System.Collections.Generic.Dict
我想在几个列上使用 orderBY,但它们应该像一列一样。 该表看起来像这样: col1 | col2 5 | 2 | | 3 7 | | 1 | 1
我有这张表 mytable: +----+--------------------------------------+ | id | date1 | date2 | date3
我是一名优秀的程序员,十分优秀!