簡體   English   中英

python pandas - 無法將csv字段中的科學記數法轉換為字符串?

[英]python pandas - unable to convert scientific notation in a csv field to string?

我正在嘗試使用熊貓來確保 csv 將某些字段(包含數字)輸出為字符串,而不是數字。

這是 csv 中的初始字段 - 它們以科學記數法格式設置:

FIPS_BLOCK  FIPS_BLKGR  FIPS_TRACT
5.51E+14    5.51E+11    5.51E+10
5.51E+14    5.51E+11    5.51E+10
5.51E+14    5.51E+11    5.51E+10
5.51E+14    5.51E+11    5.51E+10

我如何嘗試轉換為字符串:

import pandas as pd

# lst of column names which needs to be string
lst_str_cols = ['FIPS_BLOCK', 'FIPS_BLKGR', 'FIPS_TRACT','FIPS_PLACE']
# use dictionary comprehension to make dict of dtypes
dict_dtypes = {x : 'str'  for x in lst_str_cols}
# use dict on dtypes
df = pd.read_csv(output_files_dir + "//" + output_shp_name + ".csv", dtype=dict_dtypes)
df.to_csv(output_files_dir + "//" + output_shp_name + ".csv")

它仍然以科學記數法進行格式化。 我也試過轉換為數字 (int64),但它仍然以科學記數法輸出,所以我不知道還能嘗試什么。 謝謝你。

謝謝。

pandas 文檔中,您可以在.to_csv方法中添加引用選項。

對於您的代碼

import csv
df.to_csv(output_files_dir + "//" + output_shp_name + ".csv", quoting=csv.QUOTE_NONNUMERIC)

或者,如果您想引用所有內容(包括數字),您可以使用csv.QUOTE_ALL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM