【发布时间】:2022-01-15 17:06:10
【问题描述】:
我是 python 新手。下面的代码根据列表中的子字符串(键)过滤数据帧 df 中的行,并添加一个新列,例如包含子字符串(所有这些子字符串)的“键”。数据帧包含学生、年龄、运动的名称。运动页面包含他参加的所有运动。列表数组包含两个运动名称。此处的代码提取列表中提到的任何运动的名称。我想要数据框中的另一个字段“键”,它提到列表中的匹配项,如“曲棍球”或“足球”或“骑师足球”取决于比赛。 '''
import requests
import pandas as pd
import numpy as np
data = {'Name': ['Tom', 'Joseph','Krish', 'Mohan', 'Ram'], 'Age': [20, 21, 19, 18, 29],'Sport':['football', 'hockey football badminton', 'cricket', 'tennis football', 'hocey cricet']}
df= pd.DataFrame(data)
print(df)
list = ['football','hockey'] # list of sports to filter
list_s = np.array(list)
print(list_s)
#Filter rows from df which are in list_s
dff = df[df['Sport'].str.contains('|'.join(list_s))]
print(dff)
【问题讨论】:
标签: python pandas dataframe contains string-matching