2023년 7월 동안 검색하고 공부한 것들을 정리한 내용입니다.
1. ValueError: could not convert string to float
에러 로그
: ValueError: could not convert string to float: ''
원인
: ''
값이 포함된 string
에 대해 float
로 dtype을 변경하려고 함.
해결 방법
: ''
값을 np.nan
과 같은 값으로 변경함.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np
import pandas as pd
df_tmp = pd.DataFrame([['a', '1'], ['b', '']], columns=['var_str', 'var_float'])
df_tmp
# var_str var_float
# 0 a 1
# 1 b
df_tmp.astype({'var_str':'object', 'var_float':'float'})
# ...
# ValueError: could not convert string to float: ''
pd.DataFrame(np.where(df_tmp=='',np.nan, df_tmp), columns=['var_str', 'var_float']).astype({'var_str':'object', 'var_float':'float'})
# var_str var_float
# 0 a 1.0
# 1 b NaN
2. 일치하지 않는 패턴 찾기 in 정규표현식
- 참고자료
목표
,
를 구분자로 문자열을 분리하고자 함.,\s
(뒤에 whitesapce 포함)에 대해서는 구분자로 하지 않음.
방법
- (?!abc)
- 패턴에서 ‘abc’가 나오지 않는 경우에 일치하다고 판단함.
1
2
3
4
5
6
import re
_string_val = 'A, B,C,D'
sep = r',(?!\s)'
re.split(sep, _string_val)
# ['A, B', 'C', 'D']