将Pandas数据写入CSV或SQL会导致删除尾部0

2024-06-26 04:54:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我在熊猫数据框中有一些数据,存储如下:

0纳斯达克AAPL 1.63 3.51 2.20
1纳斯达克AAPL 2.40 3.59 1.74

当我将它导出到CSV文件或SQLite数据库时,任何第二个小数位为零的数字都会被截断为一个小数位(例如,2.40变成2.4)。在

我用于导出的代码是:

""" Export data to CSV file """

# Output final data as CSV
df.to_csv('stock_data-US.csv', sep=',', float_format='%.2f', encoding='utf-8', index=True)

# Connect to the database file
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()


""" Export dataframe to sqlite table """

# Export pandas array to sqlite table
df.to_sql("stock_data_US", conn, if_exists='replace', index=False)

# Commit changes
conn.commit()

# Close database connection
conn.close()

如您所见,我已经指定了float格式,但是这似乎被忽略了(因为小数点被四舍五入)。理想情况下,我希望所有导出的数字在小数点后2位保持一致。在

提前感谢您的支持!在


Tags: csvto数据dfsqlitedatastockexport
2条回答

我在pandas数据框中找到了解决这个问题的方法。在

我注意到,当值以浮点形式存储在pandas数据框中时,我有一个尾随的零;所以一切都很好。当序列被转换成一个字符串(这样我就可以添加一个$或%)时,我就失去了试验零。在

我发现使用以下命令可以避免转换为字符串,并获得相同的结果:

添加前导$符号

df['ABC']=df['ABC'].apply(lambda x:'${:,.2f}'。格式(x))

添加尾随%符号

df['ABC']=df['ABC'].apply(lambda x:'{:,.2f}%'。格式(x))

感谢那些回应的人。在

df.to\U csv在您的代码中,对于小数点后有两个非零位数的数字,它将非常有效。对于小数点后的任何零,它将在写入时被删除。 你不应该有任何问题。在

相关问题 更多 >