셸을 통해 사용자 입력을 읽도록 Argparse 파서를 설정 중입니다. 입력은 문자열과 숫자가 포함 된 pandas DataFrame에서 데이터를 추출하는 데 사용됩니다. Argparse .add_argument()
에서 type=
인수를 자동으로 설정하여 해당 열의 데이터 유형과 일치 시키려고합니다.argparse에서 numpy 데이터 형식 사용
for c in inputdata.columns:
inputname= c
inputtype= np.dtype(inputdata[c])
parser.add_argument("--"+inputname, type=inputtype)
그러나이 작동하지 않습니다 :
내 생각은 inputdata 가 DataFrame이다이 같은 Argparse 인수를 설정했다 파이썬은 ValueError: dtype('int64') is not callable
발생합니다. 나는 그것이 Numpy 파일 유형에 맞지 않기 때문에 이것이라고 생각합니다. 예 : 입력 유형을 float으로 설정하면 계획대로 진행됩니다. 수동으로 type=np.int64
을 입력하면 Argparse도 문제가 없습니다.
어떻게 루프에서 INT64 및 객체 위에 표시된 즉, 내 DataFrame의 파일 형식을 적용받을 수 있습니까? 일부 옵션 인 here도 사용해 보았습니다.
dtype.type
하지만 아무 것도 효과가 없습니다.아니면 그냥 가능하지 않습니까? Argparse docs 상태 해당
일반적인 종류의 내장 기능은 형식 인수
의 값으로 직접 사용하지만 난 그 위에 말했듯이 NumPy와 데이터 유형 잘 보인다 될 수있다 명시 적으로 입력하면.
도움 주셔서 감사합니다.
이 문맥에서'callable'은 대개 문자열을 (입력 내용을) 받아서 다른 것으로 변환하는 함수입니다. 그리고 입력 문자열이 잘못 형성되었다는 오류가 발생합니다. 'np.int64 ('123')'이 작동합니다. 'np.dtype ('int64') ('123')'그렇지 않습니다. – hpaulj