나는 applymap
메서드의 기능을 시험해보고 싶었습니다. Pandas DataFrame
개체입니다. 여기에 사용 사례는 다음과 같습니다팬더 DataFrame ApplyMap 메서드
하자 다음과 같이 내 DataFrame df1
는 말 :
Age ID Name
0 27 101 John
1 22 102 Bob
2 19 103 Alok
3 27 104 Tom
4 32 105 Matt
5 19 106 Steve
6 5 107 Tom
7 55 108 Dick
8 67 109 Harry
가 지금은 논리와 플래그 변수를 만들려면 해당 요소의 길이보다 작은 경우 2, 다음 플래그 = 1 else flag = 0.
이 요소를 실행하려면 applymap
메서드를 사용하고 싶었습니다. 다음과 같이 그에 대한 그래서 나는 사용자 정의 함수를 만들어 :
Age ID Name
0 None None None
1 None None None
2 None None None
3 None None None
4 None None None
5 None None None
6 None None None
7 None None None
8 None None None
을 대신 플래그 값 플래그 변수를 만드는 :
def f(x):
if len(str(x))>2:
df1['Flag']=1
else:
df1['Flag']=0
그럼 내가 준
df1.applymap(f)
을 달렸다.
applymap
을 사용하여 원하는 기능을 어떻게 얻을 수 있습니까?
사용자 정의 함수 내에서 DataFrame 변수 이름이나 pandas 문을 사용할 수 없습니까? 즉, df1['Flag']
은 f()
의 정의 내에서 유효합니까?
감사합니다. 후속 조치. df1 [ 'Flag'] = df1.applymap (f) .sum (축 = 1) .astype (bool) 문에서 열을 합하면 첫 번째 행의 값은 2 (1 + 1) +0)? 그러면 그 불의는 진정한 의식이어야합니까? 그렇다면 틀린 이유는 무엇입니까? – Baktaawar
예, 죄송합니다 -'all' 함수의 결과를 복사했지만'sum' 함수에 썼습니다 (bool (sum)은 좋은 예로없는 모든 행에 대해 True를 제공합니다). 이제 해결되었습니다. – Bonlenfum
@Baktaawar 만약 당신이 대답을 받아 들일 수 있다면, "고마워요"외에도 문제가 해결 되었다면 좋을 것입니다! – Owen