Python의 데이터 세트에서 '값 포함'필터링 [중복]
Aug 28 2020
Python에서 특정 값을 포함하는 값으로 열을 어떻게 필터링합니까?
예는 'City'라는 열이있는 데이터 세트이며 값은 'Sydney', 'Greater Sydney', 'North Sydney'등이 될 수 있습니다. 사용하는 경우 'Sydney'를 입력하면 모든 변형이 필터링?
#user inputs column
input1 = input()
country_city = input1.title()
#user inputs value
input2 = input()
country_city_value = input2.title()
#filtering step (current)
filtered = dataset[dataset[country_city] == country_city_value]
print(filtered)
답변
1 sygneto Aug 28 2020 at 06:44
str.contains좋은 방법이지만 입력 한 내용이 'North Sydney'이면 Sydney결과적으로 수신되지 않습니다 north sydney. 예를 들면 다음과 같습니다.
df= pd.DataFrame({
'A':['Sydney','North Sydney','Alaska']
})
print(df)
A
0 Sydney
1 North Sydney
2 Alaska
input='North Sydney'
filtered = df[df.A.str.contains(input)]
print(filtered)
A
1 North Sydney
그래서 그런 식으로 사용을 개선하려면 split() with str.contains()
input=input.split()
print(input)
['North', 'Sydney']
filtered = df[df.A.str.contains('%s'%[x for x in input])]
print(filtered)
A
0 Sydney
1 North Sydney
따라서 이러한 방식으로 입력의 모든 부분이 고려됩니다.
1 AvivYaniv Aug 28 2020 at 06:34
입력 단어가 포함 된 내용을 필터링하려면 str.contains다음을 적용하십시오 .
data = {'City': ['Sydney', 'Greater Sydney', 'North Sydney'],}
dataset = pd.DataFrame(data, columns = ['City'])
#user inputs column
input1 = input()
country_city = input1.title() # 'City'
#user inputs value
input2 = input()
country_city_value = input2.title() # 'Sydney'
#filtering step (current)
filtered = dataset[dataset[country_city].str.contains(country_city_value)]
# City
# 0 Sydney
# 1 Greater Sydney
# 2 North Sydney
print(filtered)