成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

當Excel遇到大數據問題,是時候用Python來拯救了

開發 后端
Excel能做很多事情;當涉及到更大的數據集時,這簡直是一種痛苦。如果有一種簡單的方法,那就是將數據傳輸到SQL數據庫中進行分析。這就是Python拯救世界的方式。

與從事分析工作的人交談,他們會告訴你他們對Excel的愛恨情仇:

Excel能做很多事情;當涉及到更大的數據集時,這簡直是一種痛苦。數據需要很長時間才能加載,在你意識到機器的內存耗盡之前,整個事情就變得無法管理了。更不用說Excel最多只能支持1,048,576行。

如果有一種簡單的方法,那就是將數據傳輸到SQL數據庫中進行分析。這就是Python拯救世界的方式。

當Excel遇到大數據問題,是時候用Python來拯救了

Python中的SQL

首先,讓我們研究一下在Python中使用SQL時最流行的選項:MySQL和SQLite。

MySQL有兩個流行的庫:PyMySQL和MySQLDb;而SQLite有SQLite3。

SQLite就是所謂的嵌入式數據庫,這意味著它在我們的應用程序中運行,因此不需要先在某個地方安裝它(不像MySQL)。

這是一個重要的區別;在我們尋求快速數據分析的過程中起著關鍵作用。因此,我們將繼續學習如何使用SQLite。

在Python中設置SQLite

我們需要做的第一件事是導入庫:

  1. import sqlite3 

然后,我們需要確定是否要在任何地方保存這個數據庫,還是在應用程序運行時將它保存在內存中。

如果決定通過導入任何數據來實際保存數據庫,那么我們必須給數據庫一個名稱,例如' FinanceExplainedDb ',并使用以下命令:

  1. dbname = 'FinanceExplainedDb' 
  2. conn = sqlite3.connect(dbname + '.sqlite') 

另一方面,如果我們想把整個東西保存在內存中,并在完成后讓它消失,我們可以使用以下命令:

  1. conn = sqlite3.connect(':memory:') 

至此,SQLite已經全部設置好,可以在Python中使用了。假設我們在Table 1中加載了一些數據,我們可以用以下方式執行SQL命令:

  1. cur = conn.cursor() 
  2. cur.execute('SELECT * FROM Table1') 
  3. for row in cur: 
  4.     print(row) 

現在讓我們探索如何通過使用pandas的應用程序使數據可用。

使用pandas加載數據

假設我們已經有了數據,我們想要進行分析,我們可以使用Pandas庫來做這件事。

首先,我們需要導入pandas庫,然后我們可以加載數據:

  1. import pandas as pd 
  2. #if we have a csv file 
  3. df = pd.read_csv('ourfile.csv') 
  4. #if we have an excel file 
  5. df = pd.read_excel('ourfile.xlsx') 

一旦我們加載數據,我們可以把它直接放入我們的SQL數據庫與一個簡單的命令:

  1. df.to_sql(name='Table1'con=conn

如果在同一個表中加載多個文件,可以使用if_exists參數:

  1. df.to_sql(name='Table1'con=connif_exists='append'

在處理較大的數據集時,我們將無法使用這個單行命令來加載數據。我們的應用程序將耗盡內存。相反,我們必須一點一點地加載數據。在這個例子中,我們假設每次加載10,000行:

  1. chunksize = 10000 
  2. for chunk in pd.read_csv('ourfile.csv', chunksizechunksize=chunksize): 
  3.     chunk.to_sql(name='Table1'con=connif_exists='append'

把所有的東西放在一起

為了將所有內容綜合起來,我們提供一個Python腳本,它涵蓋了我們討論的大部分內容。

  1. import sqlite3, pandas as pd, numpy as np 
  2. #####Creating test data for us -- you can ignore 
  3. from sklearn import datasets 
  4. iris = datasets.load_iris() 
  5. df1 = pd.DataFrame(datanp.c_[iris['data'], iris['target']], columnsiris['feature_names'] + ['target']) 
  6. df1.to_csv('TestData.csv',index=False
  7. ########################### 
  8. conn = sqlite3.connect(':memory:') 
  9. cur = conn.cursor() 
  10. chunksize = 10 
  11. for chunk in pd.read_csv('TestData.csv', chunksizechunksize=chunksize): 
  12.     chunkchunk.columns = chunk.columns.str.replace(' ', '_') #replacing spaces with underscores for column names 
  13.     chunk.to_sql(name='Table1'con=connif_exists='append'
  14. cur.execute('SELECT * FROM Table1') 
  15. names = list(map(lambda x: x[0], cur.description)) #Returns the column names 
  16. print(names) 
  17. for row in cur: 
  18.     print(row) 
  19. cur.close() 

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2012-12-24 10:58:50

大數據大數據產業布局大數據全球技術峰會

2017-01-13 10:33:39

華為大數據

2013-07-26 11:17:34

AdTime游戲大數據

2011-10-11 15:42:54

大數據數據庫

2009-06-19 18:00:05

HibernateSpring

2014-09-17 09:50:07

OpenSOC大數據

2015-09-11 20:16:46

CAAPM應用性能

2018-09-26 20:01:17

金融大數據數據平臺

2012-07-24 09:16:19

郵箱技巧

2015-07-10 15:31:42

ITIoT物聯網

2015-01-07 15:49:21

大數據SSD

2024-06-18 13:32:08

2014-03-31 14:53:46

大數據

2016-10-26 08:49:38

2021-04-24 16:35:37

AI 數據人工智能

2024-09-18 09:00:40

2015-09-18 15:22:56

DCIMITSM

2013-12-03 10:05:00

大數據

2013-08-22 11:08:27

大數據商業只能Hadoop

2013-11-08 09:15:32

大數據平板電腦
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品视频在线观看 | 亚洲日本一区二区三区四区 | 国产探花 | 色婷婷亚洲国产女人的天堂 | 国内精品在线视频 | 国产精品久久久99 | 精品一二区 | 丝袜美腿一区二区三区动态图 | 日本一区二区不卡视频 | 欧洲精品码一区二区三区免费看 | 337p日本欧洲亚洲大胆精蜜臀 | 水蜜桃亚洲一二三四在线 | 午夜精品久久 | 毛片免费看 | 亚洲电影第三页 | 国产成人免费视频网站高清观看视频 | 国产精品久久一区二区三区 | 亚洲www啪成人一区二区麻豆 | 日本免费在线观看视频 | 国产免费xxx| 国产一区在线看 | 国产精品日日做人人爱 | 久久精品伊人 | 91.xxx.高清在线 | 亚洲精品久久久一区二区三区 | 久久久美女 | 欧美精品一区久久 | 91久久精品一区二区二区 | 日韩在线免费视频 | 欧美精品片 | 国产精品久久久乱弄 | 一区二区不卡高清 | 日韩第一夜| 日韩一二三区视频 | 最新黄色毛片 | 久久99视频 | 国产91久久久久蜜臀青青天草二 | 欧美日韩高清一区 | 日韩精品在线观看一区二区三区 | 欧美国产精品 | 欧美一区二区在线观看 |