婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Python入門(mén)之使用pandas分析excel數(shù)據(jù)

Python入門(mén)之使用pandas分析excel數(shù)據(jù)

熱門(mén)標(biāo)簽:唐山智能外呼系統(tǒng)一般多少錢(qián) 白銀外呼系統(tǒng) 廣告地圖標(biāo)注app 海南400電話如何申請(qǐng) 哈爾濱ai外呼系統(tǒng)定制 公司電話機(jī)器人 陜西金融外呼系統(tǒng) 激戰(zhàn)2地圖標(biāo)注 騰訊外呼線路

1.問(wèn)題

在python中,讀寫(xiě)excel數(shù)據(jù)方法很多,比如xlrd、xlwt和openpyxl,實(shí)際上限制比較多,不是很方便。比如openpyxl也不支持csv格式。有沒(méi)有更好的方法?

2.方案

更好的方法可以使用pandas,雖然pandas不是專門(mén)處理excel數(shù)據(jù),但處理excel數(shù)據(jù)確實(shí)很方便。

本文使用excel的數(shù)據(jù)來(lái)自網(wǎng)絡(luò),數(shù)據(jù)內(nèi)容如下:

2.1.安裝

使用pip進(jìn)行安裝。

pip3 install pandas

導(dǎo)入pandas:

import pandas as pd

下文使用pd進(jìn)行pandas的操作。

2.2.讀寫(xiě)文件

讀取文件,比如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')

寫(xiě)入文件:

df.to_excel('./data/2020-suv-new.xlsx')
df.to_csv('./data/2020-suv-new.csv')

2.3.數(shù)據(jù)操作

all_cols = df.columns
print(all_cols)

# 輸出,df.columns并非list類型
Index(['銷量排名', '車系', '官方價(jià)', '從屬品牌', '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]

獲取單元個(gè)數(shù)據(jù)

cell_data = df.iloc[row_index][col_index]

2.4.數(shù)據(jù)篩選

Excel數(shù)據(jù)篩選比較實(shí)用,用pandas同樣可以,并且篩選代碼保存后,下次可以直接使用。

某個(gè)字段包含指定值

# 包含一個(gè)值,na表示是否需要填充,case表示是否區(qū)分大小寫(xiě),更強(qiáng)大的是contains還支持正則表達(dá)式
sub_df = df[ df[col_name].str.contains('key1', na=False, case=False) ]

# 包含多個(gè)值,多次調(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) ]

# 包含多個(gè)值(或)
sub_df = df[ df[col_name].str.contains('key1|key2|key3', na=False, case=False) ]

# 不包含,也就是非的過(guò)濾
sub_df = df[ ~df[col_name].str.contains('key1', na=False, case=False) ]

上述操作,都假設(shè)字段類型是字符串類型,不然會(huì)拋異常。可以通過(guò)以下的方法,可以判斷字段是否是字符類型:

pd.api.types.is_string_dtype(df[u'車系'])

# 其他類型也有類似的函數(shù),可以用dir查看有哪些類型判斷
print(dir(pd.api.types))

# 可以通過(guò)dtypes查看字段的類型
pd.dtypes
pd[u'1-12月銷量'].dtypes

條件過(guò)濾

# 大于
df[ df['1-12月銷量'] > 50000 ] .values

# 相等
df[ df['1-12月銷量'] == 50000 ] .values

2.5.數(shù)據(jù)寫(xiě)入

添加一行數(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)

更新某個(gè)單元值

df.iloc[row][col] = u'new-data'

2.6.數(shù)據(jù)刪除

刪除一列

df2 = df.drop('官方價(jià)', 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  長(zhǎng)安CS75 PLUS   長(zhǎng)安汽車   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)

# 輸出
     銷量排名           車系           官方價(jià)   從屬品牌  1-12月銷量
0       1         哈弗H6   9.80-15.49萬(wàn)     哈弗   376864
1       2       本田CR-V  16.98-27.68萬(wàn)     本田   249983
3       4          途觀L  21.58-28.58萬(wàn)     大眾   178574
4       5  長(zhǎng)安CS75 PLUS  10.69-15.49萬(wàn)   長(zhǎng)安汽車   266824
5       6       本田XR-V  12.79-17.59萬(wàn)     本田   168272
..    ...          ...           ...    ...      ...
282   283      北汽新能源EX  18.39-20.29萬(wàn)  北汽新能源      879
283   284        奔騰X40          暫無(wú)報(bào)價(jià)     奔騰    20412
284   285    標(biāo)致2008新能源  16.60-18.80萬(wàn)     標(biāo)致       37
285   286       獵豹CS10   7.98-11.98萬(wàn)   獵豹汽車       14
286   287         森雅R7   6.69-10.69萬(wàn)     一汽        1

[286 rows x 5 columns]

3.討論

pandas庫(kù)用于大數(shù)據(jù)分析和AI,庫(kù)本身比較復(fù)雜,很多功能未必用得上,日常使用可以簡(jiǎn)單的封裝,能夠讀、寫(xiě)、搜索excel或csv數(shù)據(jù),pandas比起專門(mén)操作excel的庫(kù)要好用得多,簡(jiǎn)單封裝一下即可。詳細(xì)的使用說(shuō)明,可以參見(jiàn)pandas官方文檔。

https://pandas.pydata.org/docs/user_guide/index.html#user-guide

總結(jié)

到此這篇關(guān)于Python入門(mén)學(xué)習(xí)之使用pandas分析excel數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python用pandas分析excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python數(shù)據(jù)分析模塊pandas用法詳解
  • Python數(shù)據(jù)分析庫(kù)pandas基本操作方法
  • Python數(shù)據(jù)分析之如何利用pandas查詢數(shù)據(jù)示例代碼
  • 基于Python數(shù)據(jù)分析之pandas統(tǒng)計(jì)分析
  • Python數(shù)據(jù)分析pandas模塊用法實(shí)例詳解
  • Python數(shù)據(jù)分析之真實(shí)IP請(qǐng)求Pandas詳解
  • Python數(shù)據(jù)分析庫(kù)pandas高級(jí)接口dt的使用詳解
  • 詳解Python數(shù)據(jù)分析--Pandas知識(shí)點(diǎn)
  • Python Pandas數(shù)據(jù)分析工具用法實(shí)例
  • python利用pandas分析學(xué)生期末成績(jī)實(shí)例代碼

標(biāo)簽:鷹潭 惠州 黔西 四川 常德 上海 黑龍江 益陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python入門(mén)之使用pandas分析excel數(shù)據(jù)》,本文關(guān)鍵詞  Python,入門(mén),之,使用,pandas,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python入門(mén)之使用pandas分析excel數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python入門(mén)之使用pandas分析excel數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 津南区| 绥滨县| 若羌县| 鸡东县| 南康市| 伽师县| 金湖县| 弋阳县| 安阳县| 庄河市| 凌源市| 景东| 桦川县| 垣曲县| 苍山县| 漾濞| 商南县| 合作市| 娱乐| 宜宾市| 镇沅| 崇文区| 永年县| 循化| 远安县| 隆安县| 榆林市| 南通市| 郧西县| 伊金霍洛旗| 普陀区| 建始县| 抚松县| 鹿邑县| 罗源县| 淮南市| 夹江县| 漠河县| 呼玛县| 陆良县| 永春县|