Python讀取CSV文件并進(jìn)行數(shù)據(jù)可視化
一.引入pandas、matplotlib 三方庫(kù)
使用 pip install pandas / pip install matplotlib 在終端Terminal下載
二.讀取CSV文件
在讀取文件之后,我們進(jìn)行print語(yǔ)句輸出,看一下數(shù)據(jù)是否完整
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('某超市的銷(xiāo)售數(shù)據(jù).csv')
print(data)
報(bào)錯(cuò):UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte
意思是用特定的編碼方式 UTF-8 解碼字節(jié)數(shù)據(jù)時(shí)發(fā)生的錯(cuò)誤 ,CSV文件的實(shí)際編碼方式可能是用其他編碼方式(如 GBK, GB2312, ISO-8859-1 等)編碼的
我們?cè)赑yCharm打開(kāi)該CSV文件發(fā)現(xiàn)是亂碼的,是因?yàn)镃SV文件在保存時(shí)使用的編碼格式與打開(kāi)時(shí)所用的編碼格式不匹配導(dǎo)致的

那我們采取 gbk 編碼方式試一試
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('某超市的銷(xiāo)售數(shù)據(jù).csv', encoding='gbk')
print(data)這次 4萬(wàn)余行,17列的數(shù)據(jù) 完整的輸出了,我們就可以對(duì)它進(jìn)行處理


三.數(shù)據(jù)的處理
我們通過(guò)瀏覽部分?jǐn)?shù)據(jù),發(fā)現(xiàn)有些類(lèi)名是重復(fù)的,要進(jìn)行重復(fù)數(shù)據(jù)合并

繪制柱狀圖只需要兩列數(shù)據(jù)就可以,這里選取第三列名稱(chēng)和第十四列銷(xiāo)售數(shù)量,以下代碼進(jìn)行數(shù)據(jù)聚合和數(shù)據(jù)提取然后用上述的讀取csv文件代碼并print輸出,可以看到正確的數(shù)據(jù)
# 按照指定列(這里第3列是要依據(jù)合并的列,可按需修改)對(duì)重復(fù)數(shù)據(jù)進(jìn)行合并,求和第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ù)分別指定條形圖中每個(gè)條形的位置和高度,width:這是一個(gè)浮點(diǎn)數(shù)或數(shù)組,指定條形的寬度,alpha:這是一個(gè)介于 0 和 1 之間的浮點(diǎn)數(shù),指定條形的透明度。alpha=0.5 表示條形是半透明的,color指顏色
自定義函數(shù)類(lèi)型
def draw_bar_chart():
plt.bar(new_data.iloc[:, 0], new_data.iloc[:, 1])
#new_data.iloc[:, 0]:這部分代碼使用 .iloc 方法從 new_data DataFrame 中選取所有行(: 表示所有行)的第一列(索引為 0 的列)。這些值將作為條形圖的 x 軸坐標(biāo)。
#new_data.iloc[:, 1]:這部分代碼同樣使用 .iloc 方法從 new_data DataFrame 中選取所有行的第二列(索引為 1 的列)。這些值將作為條形圖的高度(即 y 軸的值)。
plt.title('代做找我最靠譜')
plt.rcParams['font.sans-serif'] = ['SimHei'] #指定字體
plt.rcParams['axes.unicode_minus'] = False # 正常顯示負(fù)號(hào)
plt.xlabel(new_data.columns[0])#x軸標(biāo)簽
plt.ylabel(new_data.columns[1])#y軸標(biāo)簽
plt.show()五.效果展示

這里只是列舉了一個(gè)柱狀圖的例子,我相信看懂的小伙伴面對(duì)其他類(lèi)型的如折線(xiàn)圖,餅圖,詞云,雷達(dá)圖等也能夠?qū)W以致用,感謝你的關(guān)注!
到此這篇關(guān)于Python讀取CSV文件并進(jìn)行數(shù)據(jù)可視化的文章就介紹到這了,更多相關(guān)Python讀取CSV內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
bpython 功能強(qiáng)大的Python shell
bpython是一個(gè)不錯(cuò)的Python解釋器的界面,本文帶著大家了解認(rèn)識(shí)一下bpython,感興趣的小伙伴們可以參考一下2016-02-02
python3使用迭代生成器實(shí)現(xiàn)減少內(nèi)存占用
這篇文章主要介紹了python3使用迭代生成器實(shí)現(xiàn)減少內(nèi)存占用的相關(guān)資料,需要的朋友可以參考下2021-05-05
Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例代碼
夏天是用來(lái)告別的季節(jié),因?yàn)楫厴I(yè)總在七月。那么七月之前的季節(jié)是用來(lái)干嘛的呢?當(dāng)然是用來(lái)做畢業(yè)設(shè)計(jì)的啦!本文為大家準(zhǔn)備了兩個(gè)版本的學(xué)生信息管理系統(tǒng),希望對(duì)大家有所幫助2023-02-02
Python刪除列表中多個(gè)元素的四種方法總結(jié)
這篇文章主要給大家介紹了關(guān)于Python刪除列表中多個(gè)元素的四種方法,在Python中想要?jiǎng)h除列表的某個(gè)元素,可以使用本文介紹的方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09
matplotlib交互式數(shù)據(jù)光標(biāo)mpldatacursor的實(shí)現(xiàn)
這篇文章主要介紹了matplotlib交互式數(shù)據(jù)光標(biāo)mpldatacursor的實(shí)現(xiàn) ,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
pandas讀取中文xlsx文件出現(xiàn)的問(wèn)題
這篇文章主要介紹了pandas讀取中文xlsx文件出現(xiàn)的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05

