Python讀取CSV文件并進行數(shù)據(jù)可視化
一.引入pandas、matplotlib 三方庫
使用 pip install pandas / pip install matplotlib 在終端Terminal下載
二.讀取CSV文件
在讀取文件之后,我們進行print語句輸出,看一下數(shù)據(jù)是否完整
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('某超市的銷售數(shù)據(jù).csv') print(data)
報錯:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte
意思是用特定的編碼方式 UTF-8 解碼字節(jié)數(shù)據(jù)時發(fā)生的錯誤 ,CSV文件的實際編碼方式可能是用其他編碼方式(如 GBK, GB2312, ISO-8859-1 等)編碼的
我們在PyCharm打開該CSV文件發(fā)現(xiàn)是亂碼的,是因為CSV文件在保存時使用的編碼格式與打開時所用的編碼格式不匹配導致的
那我們采取 gbk 編碼方式試一試
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('某超市的銷售數(shù)據(jù).csv', encoding='gbk') print(data)
這次 4萬余行,17列的數(shù)據(jù) 完整的輸出了,我們就可以對它進行處理
三.數(shù)據(jù)的處理
我們通過瀏覽部分數(shù)據(jù),發(fā)現(xiàn)有些類名是重復(fù)的,要進行重復(fù)數(shù)據(jù)合并
繪制柱狀圖只需要兩列數(shù)據(jù)就可以,這里選取第三列名稱和第十四列銷售數(shù)量,以下代碼進行數(shù)據(jù)聚合和數(shù)據(jù)提取然后用上述的讀取csv文件代碼并print輸出,可以看到正確的數(shù)據(jù)
# 按照指定列(這里第3列是要依據(jù)合并的列,可按需修改)對重復(fù)數(shù)據(jù)進行合并,求和第14列的值 merged_data = data.groupby(data.columns[2])[data.columns[13]].sum().reset_index() # 將合并后的數(shù)據(jù)保存為新的CSV文件,名為new_data.csv,可按需更改 merged_data.to_csv('new_data.csv', index=False)
四.數(shù)據(jù)可視化
柱狀圖基本要素
plt.bar(x, y, width=0.5, alpha=0.5, color='pink')
其中 x
和 y
參數(shù)分別指定條形圖中每個條形的位置和高度,width
:這是一個浮點數(shù)或數(shù)組,指定條形的寬度,alpha
:這是一個介于 0 和 1 之間的浮點數(shù),指定條形的透明度。alpha=0.5
表示條形是半透明的,color指顏色
自定義函數(shù)類型
def draw_bar_chart(): plt.bar(new_data.iloc[:, 0], new_data.iloc[:, 1]) #new_data.iloc[:, 0]:這部分代碼使用 .iloc 方法從 new_data DataFrame 中選取所有行(: 表示所有行)的第一列(索引為 0 的列)。這些值將作為條形圖的 x 軸坐標。 #new_data.iloc[:, 1]:這部分代碼同樣使用 .iloc 方法從 new_data DataFrame 中選取所有行的第二列(索引為 1 的列)。這些值將作為條形圖的高度(即 y 軸的值)。 plt.title('代做找我最靠譜') plt.rcParams['font.sans-serif'] = ['SimHei'] #指定字體 plt.rcParams['axes.unicode_minus'] = False # 正常顯示負號 plt.xlabel(new_data.columns[0])#x軸標簽 plt.ylabel(new_data.columns[1])#y軸標簽 plt.show()
五.效果展示
這里只是列舉了一個柱狀圖的例子,我相信看懂的小伙伴面對其他類型的如折線圖,餅圖,詞云,雷達圖等也能夠?qū)W以致用,感謝你的關(guān)注!
到此這篇關(guān)于Python讀取CSV文件并進行數(shù)據(jù)可視化的文章就介紹到這了,更多相關(guān)Python讀取CSV內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python執(zhí)行外部命令subprocess的使用詳解
subeprocess模塊是python自帶的模塊,無需安裝,主要用來取代一些就的模塊或方法,本文通過實例代碼給大家分享Python執(zhí)行外部命令subprocess及使用方法,感興趣的朋友跟隨小編一起看看吧2021-05-05Python+Selenium使用Page Object實現(xiàn)頁面自動化測試
這篇文章主要介紹了Python+Selenium使用Page Object實現(xiàn)頁面自動化測試,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07Pytorch實現(xiàn)將label變成one hot編碼的兩種方式
這篇文章主要介紹了Pytorch實現(xiàn)將label變成one hot編碼的兩種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02Python中網(wǎng)絡(luò)請求中Retry策略實現(xiàn)方式
這篇文章主要介紹了Python中網(wǎng)絡(luò)請求中Retry策略實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06