2
我越來越多地瞭解python,從低效的循環列表轉移到列表列表並且一直在學習numpy/pandas。從sqlite數據庫有效地添加新的列到熊貓數據框
比方說,我有一個熊貓數據幀DF,例如一些看起來像:
| id | Year | Value |
---------------------
| 1 | 2015 | 1.00 |
| 1 | 2014 | 0.80 |
| 2 | 2015 | 1.10 |
| 3 | 2015 | 0.6 |
等
現在我將如何有效地蟒蛇,查詢我的數據庫基礎上的價值觀在特定的列中,然後將查詢的值附加到新列中。現在我的代碼看起來像這樣
uIDs = set(df['id'])
uIDs = ",".join([str(x) for x in uIDs])
with dbconnection as con:
data = con.execute("SELECT id, value2 FROM table WHERE ids IN ("+uIDs")")
for i in data.fetchall():
df[df['id'] == i[0]]['newcol'] = i[1]
對不起,我在代碼的任何錯誤,我打字了我的頭舉一個例子。
正如您所看到的,我試圖從熊貓數據框中提取所有唯一ID,從數據庫中選擇新值,然後迭代循環遍歷它們以追加到數據框中的新列。
有沒有更有效/高效/ pythonic的方式來做到這一點?如果你看的不僅僅是3個,而且還有3,000或者3萬行,這是最好的方法嗎?