天天看點

pandas如何往mysql追加資料_如何用pandas将新列附加到MySQL中?

我的了解是,您可以從資料庫中提取資料(在本例中是MySQL),将這些資料加載到pandas df中進行操作(添加新列、SQL中不容易完成的複雜計算等),然後将新列加載回MySQL。但是,最後一步是将新建立的列添加回MySQL中的同一個現有表中,在那裡我提取了原始資料,但我遇到了麻煩。{我在某處發現了一個相似的問題,但是我發現了一個關鍵的組成部分。在

我正在使用pandasto_sql來執行此任務(還有更好的選擇嗎?)。我的代碼從MySQL表中提取加密資料,将其加載到pandas df中,并添加一個新的volatile列(我知道您可以在SQL中計算這個值,這隻是一個示例)。在

SQL表(加密)date open_price close_price high_price low_price market_cap volume

1 2018-03-11 8852.78 9578.63 9711.89 8607.12 149,716,000,000 6,296,370,000

2 2018-03-10 9350.59 8866.00 9531.32 8828.47 158,119,000,000 5,386,320,000

3 2018-03-09 9414.69 9337.55 9466.35 8513.03 159,185,000,000 8,704,190,000

4 2018-03-08 9951.44 9395.01 10147.40 9335.87 168,241,000,000 7,186,090,000

熊貓df

^{pr2}$

我首先進入MySQL并使用以下指令添加了一個新列:ALTER TABLE `crypto`

ADD COLUMN Volatility float NOT NULL;

下面的代碼是我第一次将資料推送到MySQL的代碼。我将if_exists更改為df.to_sql(name='crypto', con=engine, if_exists = 'append', chunksize=10000)

DatabaseError: (mysql.connector.errors.DatabaseError) 1364 (HY000): Field 'Volitility_90' doesn't have a default value

如何才能在MySQL表中隻添加一個新列?我是否需要使用另一個包并使用cursor.execute()。任何關于這段代碼的幫助,或者一些線上教程都會很有幫助!我似乎找不到關于這個特定示例的大量内容,這讓我對整個資料操作政策進行了重新猜測。在