조건에 따라 데이터 프레임 열의 값을 변경하려고합니다. 내가 이것을 사용하고팬더 .loc을 사용할 때 복사 경고가 설정됩니다.
In [1]:df.head()
Out[2]: gen cont
timestamp
2012-07-01 00:00:00 0.293 0
2012-07-01 00:30:00 0.315 0
2012-07-01 01:00:00 NaN 0
2012-07-01 01:30:00 NaN 0
2012-07-01 02:00:00 0.231 0
:
In [1]:df.head()
Out[2]: gen cont
timestamp
2012-07-01 00:00:00 0.293 0
2012-07-01 00:30:00 0.315 0
2012-07-01 01:00:00 0.0 0
2012-07-01 01:30:00 0.005 0
2012-07-01 02:00:00 0.231 0
나는, 2 열의 합이 0.01의 임계 값보다 때마다 NaN
에 'gen'
열을 설정할 그래서 내가 원하는 것은 이것이다
df.loc[df.gen + df.con <0.01 ,'gen'] = np.nan
그것은 나에게 내가 원하는 결과를 제공하지만 경고 :
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
.loc을 사용하고 있기 때문에 혼란 스럽습니다. 나는 그것을 제안 된 방식으로 사용하고 있다고 생각합니다.
속성이 유효 보이는 열을 액세스 할 수있는 도트의 사용 외에 그 코드는, 당신은 경고를 생성하기 위해이 이전에 뭔가 일을해야합니다. 이 줄 앞에 df를 필터링 했습니까? – EdChum
이전에 df를 필터링했지만이 줄에서 경고가 생성되었습니다. 콘솔에서 해당 줄을 실행하면 경고가 재생됩니다. – doctorer
@doctorer - 필터링 코드를 추가 할 수 있습니까? 어쩌면'df1 = df.copy()'가 필요하다. – jezrael