판다스 replace 안 됨
조회수 337회
숫자 뒤 .0을 없애고 싶습니다
>>> ekfos_df.SPT
0 104.0
1 6
2 18
>>> ekfos_df.SPT.replace('.0', '')
0 104.0
1 6
2 18
>>> ekfos_df.SPT.str.replace('.0', '')
<input>:1: FutureWarning: The default value of regex will change from True to False in a future version.
0 NaN
1 6
2 18
>>> ekfos_df.loc[:, 'SPT'].replace('.0', '')
0 104.0
1 6
2 18
ekfos_df.loc[:, 'SPT'].str.replace('.0', '')
<input>:1: FutureWarning: The default value of regex will change from True to False in a future version.
0 NaN
1 6
2 18
아무리 해도 문자열 치환이 안 되는데 뭐가 문제일까요
1 답변
-
>>> pd.__version__ '1.4.2' >>> df SPT 0 104.0 1 6 2 18 >>> df.SPT 0 104.0 1 6 2 18 Name: SPT, dtype: object >>> df.SPT.replace("\.0", "", regex=True) 0 104 1 6 2 18 Name: SPT, dtype: object >>>
저도 약간 이해가 안 가긴 하는데, 이렇게는 되네요.
- 판다스 버전 1.4.2로 업데이트하고 답변 주신 것처럼 했는데도 안 돼요 뭐가 문제일까요 ㅠ 김지용 2022.5.5 23:38
- 참고로 for i, j in ekfos_df.SPT.iteritems(): 로 반복문 돌려서 type하나씩 찍어보면 .0들어간 부분은 float로 나오고 나머지는 str로 나와요. 그래서 int로 바꾸고 다시 str로 바꿔서 없애긴 했는데 그래도 ekfos_df.SPT.str.replace('.0', '')이 동작해야 하는데 안 해서 좀 답답하네요 김지용 2022.5.6 00:05
- @김지용 : replace 메소드는 앞에 붙은 str 으로 알 수 있듯이 str 타입에서 쓸 수 있는 메소드에요. float 형 값에는 쓸 수 없는 게 당연하죠. nowp 2022.5.6 08:10
- str 붙이면 type이 str로 변하는 건지 알았는데 그게 아니라는 말씀이시죠? 김지용 2022.5.7 06:42
댓글 입력