this question에 설명 된 것과 비슷한 간격 비교를 시도하고 있는데 10000 <= number <= 30000
이지만 데이터 프레임에서이를 수행하려고합니다. 예를 들어, 아래 예가 표본 데이터이고 위도가 미리 정의 된 좌표 중 1 위 이내 인 모든 행을 가져 오려고합니다.팬더 데이터 프레임의 간격 비교
import pandas as pd
import numpy as np
df = pd.DataFrame([[5,7, 'wolf'],
[5,6,'cow'],
[8, 2, 'rabbit'],
[5, 3, 'rabbit'],
[3, 2, 'cow'],
[7, 5, 'rabbit']],
columns = ['lat', 'long', 'type'])
coords = [4,7]
viewShort = df[(coords[0] - 1) <= df['lat'] <= (coords[0] + 1)]
불행히도, 나는 이렇게 쓰면 ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
이됩니다.
나는 내가이 대신
viewLong = df[((coords[0] - 1) <= df['lat']) & (df['lat'] <= (coords[0] + 1))]
처럼 쓸 수 있음을 깨닫게하지만 난이 일을 많이 작성해야, 그래서 그것을 좀 더 컴팩트 만들려고 노력했다. 예 : viewShort
예에서 내가 뭘 잘못하고 있니? 아니면 판다로는 불가능한 것입니까? 먼 길을 써야합니까?
감사합니다.
(!) 참고 : 올바른 viewShort
데이터 프레임이 네 개의 행이 있어야합니다
[5,7,'wolf'],
[5,6,'cow'],
[5,3,'rabbit'],
[3,2,'cow']
대단히 감사합니다. 나는 그 사이에() 내 목적을 위해 충분히 깨끗하다고 생각합니다. – seth127