【发布时间】:2019-10-28 01:49:52
【问题描述】:
我有一个从 SQL Server 导出的大型 CSV 文件 (1.1G),我想在 python 中对其进行预处理,但我在执行此操作时遇到了一些问题。原始的 CSV 文件日期时间值看起来像这样00:07.5, 00:08.3, 00:48.7,所以我必须通过格式化整个列来手动将它们转换为1/12/2015 12:00:07 am, 1/12/2015 12:00:08 am, 1/12/2015 12:00:49 am 以使其成为d/m/yy h:mm:ss 格式,以便它可以识别。但我注意到文件大小从1.1G 缩小到36.6 MB。我收到了excel通知:Possible Data Lost: Some features might be lost if you save this notebook in the comma-delimited(.csv) format. To preserve these features, save it in an Excel file format.
我尝试将文件保存为 csv 和 xlsx 格式,但是当我在 python 中读取文件并检查了他们的 shape: (26137666, 4)(原始 csv 文件)时,两者都导致数据框中的行丢失vs (1048575, 4)(xlsx 文件)。
我的原始 excel 文件日期时间数据看起来类似于 this。
我的问题是:
如何防止数据丢失?
是否可以在python中转换日期时间列格式?
【问题讨论】:
-
Excel 没有足够的行数来处理这么多数据,至少一张纸上没有。
-
@BigBen 我认为你是对的。有什么建议吗?
-
老实说,我真的避免在这里使用 Excel,它不适合这么多数据。
-
你应该使用 Pandas 来处理这种数据
-
从您的链接帖子中,第一个 answer 表示“Excel 具有正确的 DATETIME 值(即使在粘贴后应用了格式),但默认情况下不会'没有内置格式来显示 SQL DATETIME。"。我的问题是:如果您打算在 Python 中处理此文件,为什么要在 Excel 中格式化日期?所有日期组件都在 CSV 文件中,否则您认为更改日期格式会显示更多数据吗?
标签: python sql-server excel csv