pandas.read_csv 与其他 csv 库相比,用于将 CSV 加载到 Postgres 数据库中
pandas.read_csv vs other csv libraries for loading CSV into a Postgres Database
我是 Python 的新用户。解析和处理 CSV 并将其加载到本地 Postgres 数据库(在 Python 中)的最佳方法是什么?
有人推荐我使用 CSV 库来解析和处理 CSV。特别是,手头的任务说:
The data might have errors (some rows may be not be parseable), the
data might be duplicated, the data might be really large.
我不能在这里使用 pandas.read_csv 有什么原因吗?使用 CSV 库是否可以更轻松地解析并将其加载到本地 Postgres 数据库中?特别是,如果我只使用 pandas,如果行无法解析,如果数据真的很大,或者如果数据重复,我会 运行 遇到问题吗? (最后一点,我知道 pandas 提供了一些相对干净的重复数据删除解决方案)。
我觉得 pandas.read_csv 和 pandas.to_sql 可以为我做很多工作,但我不确定使用 CSV 库是否有其他优势。
就速度而言,post: https://softwarerecs.stackexchange.com/questions/7463/fastest-python-library-to-read-a-csv-file 似乎表明 pandas.read_csv 表现最好?
快速谷歌搜索没有发现 pandas.read_csv
关于其功能(解析正确性、支持的类型等)的任何严重缺陷。此外,由于您似乎也在使用 pandas
将数据加载到数据库中,因此直接读入 DataFrame
可以极大地提高性能和内存(无冗余副本)。
只有非常大的数据集存在内存问题 - 但这不是图书馆的错。 How to read a 6 GB csv file with pandas 有关于如何使用 pandas
.
分块处理大型 .csv
的说明
关于 "The data might have errors"、 read_csv
有一些设施,例如 converters
、error_bad_lines
和 skip_blank_lines
(具体的行动方案取决于您是否能够恢复腐败以及恢复多少腐败。
上周我有一个学校项目,要求我从 csv 加载数据并将其插入 postgres 数据库。所以当我告诉你这个时请相信我:除非你使用 pandas,否则它比必须的要难得多。问题是嗅探数据类型。好吧,所以如果你的数据库都是字符串数据类型,忘记我说的话,你是金色的。但是如果你有一个包含各种数据类型的 csv,你要么自己嗅探它们,要么你可以使用 pandas 来高效和自动地完成它。另外 pandas 有一个漂亮的写到 sql 的方法,它也可以通过 sql alchemy 连接很容易地适应与 postgres 一起工作。
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html
我是 Python 的新用户。解析和处理 CSV 并将其加载到本地 Postgres 数据库(在 Python 中)的最佳方法是什么?
有人推荐我使用 CSV 库来解析和处理 CSV。特别是,手头的任务说:
The data might have errors (some rows may be not be parseable), the data might be duplicated, the data might be really large.
我不能在这里使用 pandas.read_csv 有什么原因吗?使用 CSV 库是否可以更轻松地解析并将其加载到本地 Postgres 数据库中?特别是,如果我只使用 pandas,如果行无法解析,如果数据真的很大,或者如果数据重复,我会 运行 遇到问题吗? (最后一点,我知道 pandas 提供了一些相对干净的重复数据删除解决方案)。
我觉得 pandas.read_csv 和 pandas.to_sql 可以为我做很多工作,但我不确定使用 CSV 库是否有其他优势。
就速度而言,post: https://softwarerecs.stackexchange.com/questions/7463/fastest-python-library-to-read-a-csv-file 似乎表明 pandas.read_csv 表现最好?
快速谷歌搜索没有发现 pandas.read_csv
关于其功能(解析正确性、支持的类型等)的任何严重缺陷。此外,由于您似乎也在使用 pandas
将数据加载到数据库中,因此直接读入 DataFrame
可以极大地提高性能和内存(无冗余副本)。
只有非常大的数据集存在内存问题 - 但这不是图书馆的错。 How to read a 6 GB csv file with pandas 有关于如何使用 pandas
.
.csv
的说明
关于 "The data might have errors"、 read_csv
有一些设施,例如 converters
、error_bad_lines
和 skip_blank_lines
(具体的行动方案取决于您是否能够恢复腐败以及恢复多少腐败。
上周我有一个学校项目,要求我从 csv 加载数据并将其插入 postgres 数据库。所以当我告诉你这个时请相信我:除非你使用 pandas,否则它比必须的要难得多。问题是嗅探数据类型。好吧,所以如果你的数据库都是字符串数据类型,忘记我说的话,你是金色的。但是如果你有一个包含各种数据类型的 csv,你要么自己嗅探它们,要么你可以使用 pandas 来高效和自动地完成它。另外 pandas 有一个漂亮的写到 sql 的方法,它也可以通过 sql alchemy 连接很容易地适应与 postgres 一起工作。
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html