저는 팬더가있는 멍청한 사람입니다. apply
을 사용하여 마스크 된 데이터 프레임의 일부분에 대한 계산과 수정을 시도하고 있습니다. 작업하고자하는 부분은 마스크에 의해 정의되고 마스크되지 않은 값은 수정하고 싶지 않습니다.마스크 된 데이터 프레임의 내부 연산
문제는 마스크 된 데이터 프레임에서 apply
호출의 결과를 원래의 데이터 프레임 (또는 복사본)에 속하는 곳으로 되돌려 놓을 수있는 적절한 방법이 무엇인지 모르는 것입니다.
import pandas as pd
import numpy as np
def make_df():
np.random.seed(4)
df = pd.DataFrame(np.random.randn(5, 2),columns=["A","B"])
return df
df = make_df()
mask = (df["A"]>0)
print(df)
A B
0 0.050562 0.499951
1 -0.995909 0.693599
2 -0.418302 -1.584577
3 -0.647707 0.598575
4 0.332250 -1.147477
예상되는 결과가 이것이다 :
여기 , 나는 마스크를 사용하여 부정적인A
열에서 모든 값을 만들기 위해 노력하고 적용됩니다 내가 고민하고있는 무슨의 장난감 예이다 내가 일하는 것이 기대 무엇
A B
0 -0.050562 0.499951
1 -0.995909 0.693599
2 -0.418302 -1.584577
3 -0.647707 0.598575
4 -0.332250 -1.147477
이 있었다 :
df = make_df()
df[mask]["A"] = df[mask]["A"].apply(lambda v: -v)
print(df)
A B
0 0.050562 0.499951
1 -0.995909 0.693599
2 -0.418302 -1.584577
3 -0.647707 0.598575
4 0.332250 -1.147477
그러나 위스콘신 실패 th 팬더는 df[mask]["A"]
사본이보기가 아니므로이 수정 사항이 df
에 영향을주지 않습니다.
, 'A']'? –
나는 경고가 loc를 사용하는 것도 제안한다고 생각한다. 너 그거 해봤 니? – ayhan
고마워, 그게 내가 필요로 한거야. 나는 판다 색인 생성과 모든 'loc''iloc' at와'iat'를 사용하는 데 정말로 어려움을 겪고있다. – jadsq