큰 숫자를 csv에 문자열로 출력 할 수 있습니까?

Steveiepete

여러 열과 큰 숫자가있는 열이있는 txt 파일이 있는데 파이썬을 통해 읽고 csv로 출력하면 숫자가 변경되고 중요한 정보가 손실됩니다. txt 파일의 예 :

Identifier
12450006300638672
12450006300638689
12450006300638693

csv 출력 예 :

Identifier  Changed_format_in_csv
1.245E+16   12450006300638600
1.245E+16   12450006300638600
1.245E+16   12450006300638600

큰 숫자를 변경하지 않고 파일을 csv로 출력 할 수있는 방법이 있습니까? 문자열과 숫자 데이터 유형이 혼합 된 다른 열이 많이 있지만 모든 것을 문자열로 출력 할 수 있다면 괜찮을 것이라고 생각했습니다.

이것이 내가 시도한 것입니다.

import pandas as pd 

file1 = 'file.txt'

df = pd.read_csv(file1, sep="|", names=['Identifier'], index_col=False, dtype=str)

df.to_csv('file_new.csv', index=False)

csv 파일이 txt 파일처럼 출력되기를 원합니다. dtype = str 설정이 도움이되기를 바랐지만 그렇지 않습니다. 어떤 도움을 주시면 감사하겠습니다.

alan.elkin

단편:

이 문제는 pandas가 'file.txt'의 내용을 해석하는 데이터 유형과 관련이 있다고 생각합니다. 시도해 볼 수 있습니다.

df = df.assign(Identifier=lambda x: x['Identifier'].astype(int))

긴 이야기:

이 콘텐츠로 file.txt를 만들었습니다.

12450006300638672
12450006300638689
12450006300638693

pandas v0.23.3을 사용하여 다음과 같이 표시된 코드로 문제를 재현 할 수 없습니다.

>>> import pandas as pd
>>> df = pd.read_csv('file.txt', sep="|", names=['Identifier'], index_col=False, dtype=str)
>>> df.to_csv('file_new.csv', index=False)
>>> print(df)
          Identifier
0  12450006300638672
1  12450006300638689
2  12450006300638693
>>> exit()

$ cat file_new.csv 
Identifier
12450006300638672
12450006300638689
12450006300638693

하지만 대신 pd.read_csv (..., dtype = float)사용하여 문제를 재현 할 수 있습니다 .

>>> import pandas as pd
>>> df = pd.read_csv('file.txt', sep="|", names=['Identifier'], index_col=False, dtype=float)
>>> df.to_csv('file_new.csv', index=False)
>>> print(df)
     Identifier
0  1.245001e+16
1  1.245001e+16
2  1.245001e+16
>>> exit()

$ cat file_new.csv
Identifier
1.2450006300638672e+16
1.2450006300638688e+16
1.2450006300638692e+16

정수가 부동 숫자로 해석되는 경우 인 것 같습니다. 어떤 이유로 정수로 해석 할 수없는 경우 다음과 같이 할 수 있습니다.

>>> import pandas as pd
>>> df = pd.read_csv('file.txt', sep="|", names=['Identifier'], index_col=False, dtype=float)
>>> print(df)
     Identifier
0  1.245001e+16
1  1.245001e+16
2  1.245001e+16
>>> df = df.assign(Identifier=lambda x: x['Identifier'].astype(int))
>>> print(df)
          Identifier
0  12450006300638672
1  12450006300638688
2  12450006300638692
>>> df.to_csv('file_new.csv', index=False)
>>> exit()

$ cat file_new.csv
Identifier
12450006300638672
12450006300638688
12450006300638692

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

x보다 큰 문자열에서 숫자를 찾기 위해 정규식을 작성할 수 있습니까?

분류에서Dev

PHP에서 큰 부동 숫자를 어떻게 사용할 수 있습니까?

분류에서Dev

내 프로그램에서 어떻게 백과 십 대 숫자를 단어로 출력 할 수 있습니까?

분류에서Dev

subprocess.check_output 메서드의 출력에서 숫자를 어떻게 추출 할 수 있습니까?

분류에서Dev

Encog 이상 / 출력에 문자열을 사용할 수 있습니까?

분류에서Dev

R의 문자열에서 숫자를 어떻게 추출 할 수 있습니까?

분류에서Dev

파이썬에서 정말 큰 int를 문자열로 빠르게 변환 할 수 있습니까?

분류에서Dev

C #에서 문자열을 토큰으로 어떻게 분할 할 수 있습니까?

분류에서Dev

C #에서 문자열을 토큰으로 어떻게 분할 할 수 있습니까?

분류에서Dev

파일에서 Linux에서 문자열과 와일드 카드를 어떻게 출력 할 수 있습니까?

분류에서Dev

문자열을 입력하여 함수를 호출 할 수 있습니까?

분류에서Dev

C ++에서 특수 문자가 많은 로고를 어떻게 출력 할 수 있습니까?

분류에서Dev

셀 문자열 내에서 숫자를 동적으로 변환 할 수 있습니까?

분류에서Dev

R : 추출 된 문자열을 분리 된 문자로 하나의 열에 저장할 수 있습니까?

분류에서Dev

사전에 숫자 범위를 나열 할 수 있습니까?

분류에서Dev

MySQL에서 일관되지 않게 입력 된 날짜 열에서 문자열로 연도를 어떻게 추출 할 수 있습니까?

분류에서Dev

문자열에서 변수를 어떻게 호출 할 수 있습니까?

분류에서Dev

strcpy 함수는 어떻게 큰 문자열을 작은 문자열로 복사 할 수 있습니까?

분류에서Dev

자바 : 배열을 문자열로 만들지 않고도 출력 할 수 있습니까?

분류에서Dev

문자열을 정수로 변환 할 수 없습니다 (CSV 파일에서)-오류 입력 문자열 : "4"

분류에서Dev

출력을 문자열로 변환 할 수 없습니다.

분류에서Dev

직렬 COM 포트에서 메시지를 수신 할 때 00-00의 큰 문자열이 출력에 표시됩니까?

분류에서Dev

R에서 영숫자 문자열을 숫자로 어떻게 변환 할 수 있습니까?

분류에서Dev

F #의 문자열에 큰 따옴표를 어떻게 바인딩 할 수 있습니까?

분류에서Dev

F #의 문자열에 큰 따옴표를 어떻게 바인딩 할 수 있습니까?

분류에서Dev

에코 된 문자열의 출력을 어떻게 캡처 할 수 있습니까?

분류에서Dev

에코 된 문자열의 출력을 어떻게 캡처 할 수 있습니까?

분류에서Dev

문자열 앞에 단어를 어떻게 추출 할 수 있습니까?

분류에서Dev

(Typescript) 문자열에 숫자를 기록 할 수 없습니다.

Related 관련 기사

  1. 1

    x보다 큰 문자열에서 숫자를 찾기 위해 정규식을 작성할 수 있습니까?

  2. 2

    PHP에서 큰 부동 숫자를 어떻게 사용할 수 있습니까?

  3. 3

    내 프로그램에서 어떻게 백과 십 대 숫자를 단어로 출력 할 수 있습니까?

  4. 4

    subprocess.check_output 메서드의 출력에서 숫자를 어떻게 추출 할 수 있습니까?

  5. 5

    Encog 이상 / 출력에 문자열을 사용할 수 있습니까?

  6. 6

    R의 문자열에서 숫자를 어떻게 추출 할 수 있습니까?

  7. 7

    파이썬에서 정말 큰 int를 문자열로 빠르게 변환 할 수 있습니까?

  8. 8

    C #에서 문자열을 토큰으로 어떻게 분할 할 수 있습니까?

  9. 9

    C #에서 문자열을 토큰으로 어떻게 분할 할 수 있습니까?

  10. 10

    파일에서 Linux에서 문자열과 와일드 카드를 어떻게 출력 할 수 있습니까?

  11. 11

    문자열을 입력하여 함수를 호출 할 수 있습니까?

  12. 12

    C ++에서 특수 문자가 많은 로고를 어떻게 출력 할 수 있습니까?

  13. 13

    셀 문자열 내에서 숫자를 동적으로 변환 할 수 있습니까?

  14. 14

    R : 추출 된 문자열을 분리 된 문자로 하나의 열에 저장할 수 있습니까?

  15. 15

    사전에 숫자 범위를 나열 할 수 있습니까?

  16. 16

    MySQL에서 일관되지 않게 입력 된 날짜 열에서 문자열로 연도를 어떻게 추출 할 수 있습니까?

  17. 17

    문자열에서 변수를 어떻게 호출 할 수 있습니까?

  18. 18

    strcpy 함수는 어떻게 큰 문자열을 작은 문자열로 복사 할 수 있습니까?

  19. 19

    자바 : 배열을 문자열로 만들지 않고도 출력 할 수 있습니까?

  20. 20

    문자열을 정수로 변환 할 수 없습니다 (CSV 파일에서)-오류 입력 문자열 : "4"

  21. 21

    출력을 문자열로 변환 할 수 없습니다.

  22. 22

    직렬 COM 포트에서 메시지를 수신 할 때 00-00의 큰 문자열이 출력에 표시됩니까?

  23. 23

    R에서 영숫자 문자열을 숫자로 어떻게 변환 할 수 있습니까?

  24. 24

    F #의 문자열에 큰 따옴표를 어떻게 바인딩 할 수 있습니까?

  25. 25

    F #의 문자열에 큰 따옴표를 어떻게 바인딩 할 수 있습니까?

  26. 26

    에코 된 문자열의 출력을 어떻게 캡처 할 수 있습니까?

  27. 27

    에코 된 문자열의 출력을 어떻게 캡처 할 수 있습니까?

  28. 28

    문자열 앞에 단어를 어떻게 추출 할 수 있습니까?

  29. 29

    (Typescript) 문자열에 숫자를 기록 할 수 없습니다.

뜨겁다태그

보관