팬더 데이터 프레임의 2 개 열에 따라 최대 값을 가져오고 싶습니다. 나는 1 열에 따라 이것을 관리했지만 2는 아닙니다.
1 개 열의 경우 :
import numpy as np
import pandas as pd
df = pd.DataFrame({"name": list("ABABCD"), "value": np.arange(6)})
maxes = df.groupby(["name"]).agg("max")
df["maxvalue"]=df["name"].apply(lambda x: maxes.loc[x])
>>> df
name value maxvalue
0 A 0 2
1 B 1 3
2 A 2 2
3 B 3 3
4 C 4 4
5 D 5 5
2 열의 경우 이것을 시도했지만 작동하지 않습니다.
import numpy as np
import pandas as pd
df = pd.DataFrame({"name": list("ABABCD"),"name2": list("MNOMNO"), "value": np.arange(6)})
maxes = df.groupby(["name","name2"]).agg("max")
df["maxvalue"]=df[["name","name2"]].apply(lambda x: maxes.loc[x])
여러 열에 대해 어떻게 수행 할 수 있습니까?
사용 transform
대신에 agg
. 하나 또는 두 개의 열을 사용하는 것은 정확히 동일하며 두 개의 열에 대해 다음과 같습니다.
df["maxvalue"] = df.groupby(["name", "name2"]).transform("max")
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다