빈 값을 nan 대신 빈 문자열로 읽으려면 pandas.read_csv를 가져옵니다.
저는 판다 라이브러리를 사용하여 CSV 데이터를 읽고 있습니다.데이터에서 특정 열에 문자열이 포함되어 있습니다.현"nan"
는 가능한 값이며 빈 문자열입니다.저는 판다들에게 "난"을 문자열로 읽게 할 수 있었지만, 빈 값을 NaN으로 읽지 않도록 하는 방법을 찾을 수 없습니다.다음은 샘플 데이터와 출력입니다.
One,Two,Three
a,1,one
b,2,two
,3,three
d,4,nan
e,5,five
nan,6,
g,7,seven
>>> pandas.read_csv('test.csv', na_values={'One': [], "Three": []})
One Two Three
0 a 1 one
1 b 2 two
2 NaN 3 three
3 d 4 nan
4 e 5 five
5 nan 6 NaN
6 g 7 seven
"nan"을 문자열 "nan'으로 올바르게 읽지만 빈 셀은 NaN으로 읽습니다.지나가려고 했어요.str
에서converters
read_csv 인수(사용)converters={'One': str})
), 그러나 빈 셀은 여전히 NaN으로 읽습니다.
읽은 후에 필나로 값을 채울 수 있다는 것을 알지만, 특정 CSV 열의 빈 셀을 NaN 대신 빈 문자열로 읽어야 한다는 것을 팬더에게 말할 방법이 정말 없을까요?
저는 다른 답변과 댓글을 읽고도 여전히 혼란스러웠습니다.하지만 이제 답은 더 단순해 보입니다. 자, 여기 있습니다.
Pandas 버전 0.9(2012년부터) 이후로 설정만 하면 빈 문자열로 해석되는 빈 셀로 csv를 읽을 수 있습니다.keep_default_na=False
:
pd.read_csv('test.csv', keep_default_na=False)
이 문제는 다음에서 더 명확하게 설명됩니다.
그것은 2012년 8월 19일에 팬더 버전 0.9에 대해 수정되었습니다.
여기에 어떤 종류의 옵션을 추가하기 위해 티켓을 추가했습니다.
https://github.com/pydata/pandas/issues/1450
그 사이에result.fillna('')
당신이 원하는 것을 해야 합니다.
EDIT: 개발 버전(최종 버전 0.8.0)에서 다음 목록을 지정한 경우na_values
빈 문자열은 결과에서 빈 문자열로 유지됩니다.
우리는 이것에 대해 판다에서 간단한 논쟁을 하고 있습니다.
사용:
df = pd.read_csv('test.csv', na_filter= False)
무엇을pandas
기본적으로 결측값으로 정의하는 동안read_csv()
여기서 찾을 수 있습니다.
import pandas
default_missing = pandas._libs.parsers.STR_NA_VALUES
print(default_missing)
산출물
{'', '<NA>', 'nan', '1.#QNAN', 'NA', 'null', 'n/a', '-nan', '1.#IND', '#N/A N/A', 'N/A', 'NULL', 'NaN', '-1.#IND', '-1.#QNAN', '#NA', '#N/A', '-NaN'}
그것으로 당신은 옵트 아웃을 할 수 있습니다.
import pandas
default_missing = pandas._libs.parsers.STR_NA_VALUES
default_missing = default_missing.remove('')
default_missing = default_missing.remove('na')
with open('test.csv', 'r') as csv_file:
pandas.read_csv(csv_file, na_values=default_missing)
하나의 열에 대해 빈 문자열을 유지하려면 다음을 정의합니다.str
칼럼 컨버터(dtypes
작동하지 않음):
pd.read_csv('test.csv', converters={'column_name': str})
pd.read_csv( sourceObj, dtype='string')
추가 매개 변수가 필요하지 않습니다.
각 열 유형은 python 원시 문자열이며 빈 값은 빈 문자열 ' '이 됩니다.
버전: 팬더 v1.5
언급URL : https://stackoverflow.com/questions/10867028/get-pandas-read-csv-to-read-empty-values-as-empty-string-instead-of-nan
'programing' 카테고리의 다른 글
__init__(유닛 테스트용).테스트 케이스 (0) | 2023.06.08 |
---|---|
Oracle DB에 연결할 때 네트워크 어댑터가 연결을 설정할 수 없습니다. (0) | 2023.06.08 |
기호당 분당 데이터 차이 쿼리 (0) | 2023.06.08 |
문자열을 루비로 기호 가능으로 변환 (0) | 2023.06.08 |
새 서버의 테스트 코드 java.time.localdatetime을 날짜로 변환할 수 없습니다.생산 과정에서 발생하지 않습니다. (0) | 2023.06.08 |