我有Panda数据帧,其中包含[1127618行x 64列],并尝试使用下面的给定命令保存到mysql中。
engine = create_engine('mysql+mysqlconnector://user:password@127.0.0.1/joohun_test', echo=False)
df.to_sql(name='tst_dr3_201801', con=engine, if_exists = 'replace', index=False
当它执行这个命令时,它需要永远,似乎永远不会完成任务所以如果我将数据帧减少到[10000行×64列],它最终可以保存到Mysql数据库中。但是我在MySQL中保存的最终数据形式遇到了不同的问题。当您看到列“smaster_uuttype”和“user”时,字符之间会添加空格。
MariaDB [joohun_test]> select serialno, uuttype, smaster_uuttype,failingtestname,cpptimeid, user, year, month from tst_dr3_sample limit 10;
+-------------+--------------------+--------------------------------------+-----------------+-----------+------------------+------+-------+
| serialno | uuttype | smaster_uuttype | failingtestname | cpptimeid | user | year | month |
+-------------+--------------------+--------------------------------------+-----------------+-----------+------------------+------+-------+
| ABCDEFGH | ABCD-ABC-2500ABCD= | D E F G - H I J - 2 5 0 0 A B C D = | | NULL | d u n g l e | 2018 | 1 |
然而,看着同一排熊猫数据帧,角色之间没有空格。
serialno uuttype smaster_uuttype failingtestname cpptimeid user year month
0 ABCDEFGH ABCD-ABC-2500ABCD= DEFG-HIJ-2500ABCD= None dungle 2018 1
我想知道两件事。
答案 0 :(得分:0)
使用df.to_sql()可能会出现问题。你应该使用本地方式来做它。以下是示例https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html