簡體   English   中英

使用熊貓導出到csv時如何指定數據類型和格式?

[英]How to specify the data type and format when exporting to csv using Pandas?

我有一個熊貓數據框,當前所有列都是浮點數,我正在使用DF.to_csv將其導出到一個csv文件。

我希望將其中一列導出為int而不是浮點數。 第二列的數字帶有很多小數,並以科學計數法格式導出。 我想導出為一定精度的常規十進制數,而不是科學計數法。

假設我的DF稱為DataOut,並具有列“ A”,“ B”和“ C”

有什么我可以添加的嗎

DataOut.to_csv(filename, mode = 'w', header = False , index=False)

以便A中的值導出為int,B中的值導出為小數,最大精度為20位?

復制數據框,將各列舍入為int,然后導出CSV:

import pandas as pd
import random
#generate a dataframe with two columns, both floating point
df = pd.DataFrame({'A':[random.random()*10 for i in range(10)],
                 'B':[random.random()*20 for i in range(10)]})
df2 = df.copy() #make a copy to preserve your original
df2.loc[:, 'A'] = df2['A'].apply(int) #convert A to an int
df2.loc[:, 'B'] = df2['B'].round(20) #round B to 20 points of precision
df2.to_csv('test.csv', header = None, index = False)

浮動

Which works similarly for to_csv:

df.to_csv('df.csv', float_format='{:f}'.format, encoding='utf-8')

來源https://stackoverflow.com/a/23006399/4941927可能與float_format也可以轉換為int,但我不知道。

對於int轉換,我認為可以在解析器轉換為純文件之前使用round()函數和生成器,但是我敢肯定,因為我從不使用熊貓

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html

我會看到您的完整代碼@AlexKinman

暫無
暫無

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

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