您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Python中怎么使用pandas分析excel數(shù)據(jù)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python中怎么使用pandas分析excel數(shù)據(jù)”吧!
使用pip進(jìn)行安裝。
pip3 install pandas
導(dǎo)入pandas:
import pandas as pd
下文使用pd進(jìn)行pandas的操作。
讀取文件,比如excel,csv文件
# df是pandas.core.frame.DataFrame類型
df = pd.read_excel('./data/2020-suv.xlsx')
# read_csv可以指定分割符,編碼方式等
df2 = pd.read_csv('./data/2020-suv.csv')
寫入文件:
df.to_excel('./data/2020-suv-new.xlsx')
df.to_csv('./data/2020-suv-new.csv')
all_cols = df.columns
print(all_cols)
# 輸出,df.columns并非list類型
Index(['銷量排名', '車系', '官方價', '從屬品牌', '1-12月銷量'], dtype='object')
# df.columns并非list類型,可以轉(zhuǎn)化list
cols = list(df.columns)
獲取列數(shù)據(jù)
col_data = df[u'車系']
mul_col_data = df[ [u'車系', u'1-12月銷量'] ]
獲取行數(shù)據(jù)
row_data = df.iloc[row_index]
獲取所有行數(shù)據(jù)
all_data = df.values
切片獲取多行數(shù)據(jù)
mul_row_data = df.iloc[2:4]
獲取單元個數(shù)據(jù)
cell_data = df.iloc[row_index][col_index]
Excel數(shù)據(jù)篩選比較實(shí)用,用pandas同樣可以,并且篩選代碼保存后,下次可以直接使用。
某個字段包含指定值
# 包含一個值,na表示是否需要填充,case表示是否區(qū)分大小寫,更強(qiáng)大的是contains還支持正則表達(dá)式
sub_df = df[ df[col_name].str.contains('key1', na=False, case=False) ]
# 包含多個值,多次調(diào)用即可
sub_df1 = df[ df[col_name].str.contains('key1', na=False, case=False) ]
sub_df2 = sub_df1[ sub_df1[col_name].str.contains('key2', na=False, case=False) ]
# 包含多個值(或)
sub_df = df[ df[col_name].str.contains('key1|key2|key3', na=False, case=False) ]
# 不包含,也就是非的過濾
sub_df = df[ ~df[col_name].str.contains('key1', na=False, case=False) ]
上述操作,都假設(shè)字段類型是字符串類型,不然會拋異常??梢酝ㄟ^以下的方法,可以判斷字段是否是字符類型:
pd.api.types.is_string_dtype(df[u'車系'])
# 其他類型也有類似的函數(shù),可以用dir查看有哪些類型判斷
print(dir(pd.api.types))
# 可以通過dtypes查看字段的類型
pd.dtypes
pd[u'1-12月銷量'].dtypes
條件過濾
# 大于
df[ df['1-12月銷量'] > 50000 ] .values
# 相等
df[ df['1-12月銷量'] == 50000 ] .values
添加一行數(shù)據(jù):
# 插在最后,row_datas是list
df.loc[len(df.index)] = row_datas
插入一列數(shù)據(jù)
# 在指定列前面插上一列數(shù)據(jù)
df.insert( col_index, col_name, col_datas, True)
更新某個單元值
df.iloc[row][col] = u'new-data'
刪除一列
df2 = df.drop('官方價', axis=1, inplace=False)
print(df2)
# 輸出
銷量排名 車系 從屬品牌 1-12月銷量
0 1 哈弗H6 哈弗 376864
1 2 本田CR-V 本田 249983
2 3 博越 吉利汽車 240811
3 4 途觀L 大眾 178574
4 5 長安CS75 PLUS 長安汽車 266824
.. ... ... ... ...
282 283 北汽新能源EX 北汽新能源 879
283 284 奔騰X40 奔騰 20412
284 285 標(biāo)致2008新能源 標(biāo)致 37
285 286 獵豹CS10 獵豹汽車 14
286 287 森雅R7 一汽 1
[287 rows x 4 columns]
刪除一行
df3 = df.drop(2, axis=0, inplace=False)
print(df3)
# 輸出
銷量排名 車系 官方價 從屬品牌 1-12月銷量
0 1 哈弗H6 9.80-15.49萬 哈弗 376864
1 2 本田CR-V 16.98-27.68萬 本田 249983
3 4 途觀L 21.58-28.58萬 大眾 178574
4 5 長安CS75 PLUS 10.69-15.49萬 長安汽車 266824
5 6 本田XR-V 12.79-17.59萬 本田 168272
.. ... ... ... ... ...
282 283 北汽新能源EX 18.39-20.29萬 北汽新能源 879
283 284 奔騰X40 暫無報價 奔騰 20412
284 285 標(biāo)致2008新能源 16.60-18.80萬 標(biāo)致 37
285 286 獵豹CS10 7.98-11.98萬 獵豹汽車 14
286 287 森雅R7 6.69-10.69萬 一汽 1
[286 rows x 5 columns]
到此,相信大家對“Python中怎么使用pandas分析excel數(shù)據(jù)”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。