CSV로 내보낼 때 열에 선행 0을 유지하려면 어떻게 해야 합니까?
다음과 같은 선두 0이 있는 열이 있는 데이터 프레임을 내보내려고 합니다.
df["CD_LIN_NEG"]
0 001
1 001
2 004
3 001
4 001
5 001
6 003
7 006
Name: CD_LIN_NEG, dtype: object
하지만 csv로 내보낼 때 엑셀에서 파일을 열면 선행 0이 모두 잘립니다.어떻게 0을 유지할 수 있습니까?
문자열로 변환하려고 했지만 작동하지 않습니다.
df["CD_LIN_NEG"] = df['T_PROD_CP.LN'].astype(str).apply(lambda x: x.zfill(3))
또는 다음과 같은 방식으로:
df["CD_LIN_NEG"] = '00' + df['T_PROD_CP.LN'].astype(str)
이것은 @EdChum이 제안한 것처럼 훌륭한 문제입니다.당신은 당신의 칼럼을 다음과 같이 포장하기를 원할 것입니다.=""
와 함께apply('="{}".format)
. 그러면 Excel이 따옴표 내에서 텍스트를 반환하는 수식으로 항목을 취급합니다.그 텍스트는 선행 0이 있는 당신의 값이 될 것입니다.
다음의 예를 생각해 봅니다.
df = pd.DataFrame(dict(A=['001', '002']))
df.A = df.A.apply('="{}"'.format)
df.to_excel('test_leading_zeros.xlsx')
가장 간단한 해결책은 다음을 추가하는 것입니다.dtype=str
독서중에txt
아니면csv
Pandas의 파일:
df = pd.read_csv(r'C:\my_folder\my_file.csv', dtype=str)
이는 질문과 직접적인 관련이 없을 수도 있지만, 외부 소스에서 다음을 통해 데이터를 읽을 경우pandas.read_csv()
아니면pandas.read_excel()
, 그러면 우리는 특정할 수 있습니다.converters
관련 열에 대해 사용str
.
예를들면,
import pandas as pd
df = pd.read_excel(
'./myexcel.xlsx',
converters={
"serialno": str, # Ensure serialno is read as string, maintaining leading 0's
"location": lambda x: '-' if x=='' else str(x),
}
df1 = pd.read_excel(
'./mycsv.csv',
converters={
"serialno": str, # Ensure serialno is read as string, maintaining leading 0's
"location": lambda x: '-' if x=='' else str(x),
}
Excel 또는 CSV 파일에 데이터를 저장하면 선행 0이 유지됩니다.
언급URL : https://stackoverflow.com/questions/41240535/how-can-i-keep-leading-zeros-in-a-column-when-i-export-to-csv
'programing' 카테고리의 다른 글
포장마차 메시지에 추가된 우커머스 제거/숨김 쿠폰 적용 메시지 유지/표시 (0) | 2023.10.31 |
---|---|
문자열이 아닌 숫자로 CSS 최상위 값을 얻습니까? (0) | 2023.10.31 |
Adding a conditional to mustache/php (0) | 2023.10.31 |
TensorFlow에서 tf.app.flags의 목적은 무엇입니까? (0) | 2023.10.31 |
Android ndk/jni와 함께 C++ 사용 (0) | 2023.10.31 |