濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 使用python對(duì)excel表格處理的一些小功能

使用python對(duì)excel表格處理的一些小功能

熱門(mén)標(biāo)簽:電話機(jī)器人哪里有賣(mài) 萬(wàn)利達(dá)百貨商場(chǎng)地圖標(biāo)注 河南虛擬外呼系統(tǒng)公司 okcc外呼系統(tǒng)怎么調(diào)速度 智能機(jī)器人電銷(xiāo)神器 外呼電信系統(tǒng) 惠州龍門(mén)400電話要怎么申請(qǐng) 上海企業(yè)外呼系統(tǒng) 熱門(mén)電銷(xiāo)機(jī)器人

python對(duì)excel表格處理的一些小功能 功能概覽pandas庫(kù)的一些應(yīng)用文件讀入計(jì)算表格中每一行的英文單詞數(shù)簡(jiǎn)單用textblob進(jìn)行自然語(yǔ)言情感分析判斷一行中是不是有兩列值都與其他行重復(fù)(可推廣至多列)對(duì)表格中的兩列自定義函數(shù)運(yùn)算判斷表格中某列中是否有空對(duì)表格某列中時(shí)間格式的修正運(yùn)用matplotlib畫(huà)時(shí)間序列圖,重疊圖

功能概覽

做數(shù)模模擬賽時(shí)學(xué)到的一些對(duì)表格處理的知識(shí),為了方便自己以后查找,遂寫(xiě)成一篇文章,也希望能幫助大家:)

pandas庫(kù)的一些應(yīng)用

文件讀入

代碼如下,每一句后面都有注釋
包括知識(shí)點(diǎn):
1.excel文件的寫(xiě)入和輸出;
2.檢驗(yàn)表格中是否有NaN,有即刪除一行;
3.把表格某列中所有某字母替換成另一字母,所有某數(shù)字替換成另一數(shù)字;
4.檢驗(yàn)表格某列中每一格是Y還是N,是Y就在新列中對(duì)應(yīng)輸出1,反之則為0;
5.對(duì)表格中多列進(jìn)行運(yùn)算
(首先要配置pandas庫(kù),如果需要讀取和寫(xiě)入文件,要配置xlsxwriter庫(kù))

import pandas as pd
import xlsxwriter 
word=pd.read_excel('C:/math/Problem_C_Data/my_pacifier.xlsx') #excel表格文件讀入,括號(hào)里面寫(xiě)文件地址
word=word.replace(['n','y'],['N','Y'])  #把excel表里的所有n替換成N,y替換成Y
word=word.dropna(axis=0)    #如果表格里有一行中有NaN,即刪除這一行
word['m'] = word['a'].str.contains('Y').astype(int)   #如果列索引為a的這一列中有Y則對(duì)應(yīng)新列中取值為1
word['n']=word['vine'].str.contains('Y').astype(int)
word['n']=word['n'].replace(1,2)      #把列索引為n的這一列中所有為1的值轉(zhuǎn)換為2
s = word.apply(lambda word: word['a'] *(word['m']+word['n']) , axis=1)    #s列是由表格中其他列的計(jì)算得到
word['Si']=(s - s.min())/(s.max() - s.min()) #對(duì)s列中的值進(jìn)行歸一化處理
print(word['Si'])                             //打印索引為Si的列
#print(s)
#print(word['n'])
word.to_excel('C:/math/Problem_C_Data/SVVp.xlsx',engine='xlsxwriter')      //輸出excel文件到電腦中
print('finished') 

計(jì)算表格中每一行的英文單詞數(shù)

包含知識(shí)點(diǎn):
1.dataframe和字典、列表的轉(zhuǎn)換;
2.如何遍歷字典;
3.計(jì)算dataframe中每一列的英文句子中的單詞數(shù)

import pandas as pd
import xlsxwriter 
word=pd.read_excel('C:/math/Problem_C_Data/reviewh.xlsx')  #里面只有一列數(shù)據(jù)
c=[]      #列表,用來(lái)統(tǒng)計(jì)每一行的英文句子的英文單詞個(gè)數(shù)
word=word.set_index(word.index).T.to_dict('list') #把這一列數(shù)據(jù)按dataframe的索引轉(zhuǎn)換成字典     
for key,value in word.items():    #遍歷字典
  s=str(value)           #先把表格里當(dāng)前行的內(nèi)容轉(zhuǎn)換成字符串
  a=s.split(' ')          #把英文句子按空格分割
  num_s=len(a)            #計(jì)算出單詞個(gè)數(shù)
  c.append(num_s)          #添加到c中
c=pd.DataFrame(c)           #由列表轉(zhuǎn)換為dataframe
c.to_excel('C:/math/Problem_C_Data/counth.xlsx',engine='xlsxwriter')  //輸出成新的文件
print('finished')

簡(jiǎn)單用textblob進(jìn)行自然語(yǔ)言情感分析

用NLP簡(jiǎn)單分析表格中每一格的英文句子的情感極性和主觀性

import pandas as pd
from textblob import TextBlob
import xlsxwriter 
word=pd.read_excel('C:/math/Problem_C_Data/reviewh.xlsx')
c=[]
word=word.set_index(word.index).T.to_dict('list')
for key,value in word.items(): 
  s=str(value)
  blob = TextBlob(s)     #把s轉(zhuǎn)化成textblob對(duì)象
  blob = blob.sentences   #利用TextBlob句子標(biāo)記化句子
  first = blob[0].sentiment   #對(duì)標(biāo)記化后的句子進(jìn)行情感分析(我這里只有一個(gè)句子,如果有很多句就添加second=blob[1].sentiment)
  c.append(first.polarity)    #這里只添加了情感極性,如果還需要主觀性,就直接用first
c=pd.DataFrame(c)
c.to_excel('C:/math/Problem_C_Data/NLPh.xlsx',engine='xlsxwriter')
print('finished')

判斷一行中是不是有兩列值都與其他行重復(fù)(可推廣至多列)

判斷表中是不是有在同一行中a列和b列值都相同的情況。如第一行中a=1,b=2,第4行中a=1,b=2,則這兩行相同;如果第8行中a=1,b=3,則它和第一行不重復(fù)

import pandas as pd
import xlsxwriter
word=pd.read_excel('C:/math/Problem_C_Data/my_hair_dryer.xlsx')
x=word['a']     
y=word['b']
z=pd.concat([x,y],axis=1)#對(duì)axis=1即把兩列按行對(duì)齊,即左右拼接成一張表       
z['repeat']=z.duplicated()  #判斷表中有沒(méi)有重復(fù)的,如果有則輸出為true
ll = z['repeat'].values.tolist()   #把這一列轉(zhuǎn)變成列表   
if 'True' in ll:   #遍歷列表,如果里面有true,就說(shuō)明有重復(fù),就輸出yes
  print('yes')
print('finished')

對(duì)表格中的兩列自定義函數(shù)運(yùn)算

(此處定義的是除法運(yùn)算)

import pandas as pd
import xlsxwriter 
word=pd.read_excel('C:/math/Problem_C_Data/my_hair_dryer.xlsx')
def chu(x,y):
  if y==0:   #分母為0,則不運(yùn)算,結(jié)果直接為0
    result=0
  else:
    result=x/y
  return result
s = word.apply(lambda word:chu(word['helpful_votes'],word['total_votes']), axis=1)
s.to_excel('C:/math/Problem_C_Data/voteh.xlsx',engine='xlsxwriter')
print('finished')

判斷表格中某列中是否有空

import numpy as np
import pandas as pd
import xlsxwriter 
word=pd.read_excel('C:/math/Problem_C_Data/my_hair_dryer.xlsx')
train=word['review_date']
print(train.isnull().any())   #有空即輸出true

對(duì)表格某列中時(shí)間格式的修正

原格式是月/日/年,如1/11/2014,改為標(biāo)準(zhǔn)datetime格式2014-01-11(此處還要舍去后面的00:00:00),方便之后畫(huà)圖,也方便排序等

import pandas as pd
import datetime  #引入庫(kù)

#導(dǎo)入數(shù)據(jù)集
data =pd.read_excel('C:/math/Problem_C_Data/Exx.xlsx')

data = data.loc[:, ['review_date']] # 獲取數(shù)據(jù)集中列名為review_date
#s= pd.to_datetime(data['review_date'], format='%m/%d/%Y')

# 標(biāo)準(zhǔn)化日期,獲取時(shí)間的“年、月、日”
def change_date(s):
  s = datetime.datetime.strptime(s, "%m/%d/%Y") #這里是原格式的形式,俺是月/日/年,可根據(jù)實(shí)際情況修改 
  # 把日期標(biāo)準(zhǔn)化,如把1/11/2014變成2014-01-011 00:00:00
  s = str(s) # 上一步把date轉(zhuǎn)化為了時(shí)間格式,此處把date轉(zhuǎn)回str格式
  return s[:10] #只獲取年月日的方法,即“位置10”之前的字符串
  #字符串的切片

data['review_date'] = data['review_date'].map(change_date) 
# 用change_date函數(shù)處理列表中date這一列,如把“1/11/2014”轉(zhuǎn)化為“2014-01-11”
#data = data.sort_values(by='review_date') # 按date這一列進(jìn)行排序,根據(jù)需要采用
data.to_excel('C:/math/Problem_C_Data/Exxx.xlsx',engine='xlsxwriter')
print('finished')

運(yùn)用matplotlib畫(huà)時(shí)間序列圖,重疊圖

畫(huà)時(shí)間序列圖
(如果要畫(huà)重疊圖,記得x要一樣,y可以不一樣,然后用plt.plot(x,y0,x,y1,x,y2)即可畫(huà)出重疊圖)

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib
import datetime
from statsmodels.graphics.factorplots import interaction_plot
import xlsxwriter 
data=pd.read_excel('C:/math/Problem_C_Data/Exx.xlsx')
# # create data 
s=data['E']      #y軸
e0=s[2907:5043]
t=data['review_date'] 
t0=t[2907:5043]
y0 =e0.values.tolist()
x0 = pd.to_datetime(t0)     #x軸
# # plot
plt.plot(x0,y0)        
plt.gcf().autofmt_xdate()
plt.grid(ls = '--')      #設(shè)置背后的網(wǎng)格線
plt.show()  #最后一定要show()

到此這篇關(guān)于使用python對(duì)excel表格處理的一些小功能的文章就介紹到這了,更多相關(guān)python對(duì)excel表格處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python Excel處理庫(kù)openpyxl使用詳解
  • 零基礎(chǔ)使用Python讀寫(xiě)處理Excel表格的方法
  • 解決使用Pandas 讀取超過(guò)65536行的Excel文件問(wèn)題
  • Pandas與openpyxl庫(kù)結(jié)合處理Excel表格實(shí)現(xiàn)代碼

標(biāo)簽:秦皇島 淮安 百色 周口 綏化 合肥 周口 綿陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用python對(duì)excel表格處理的一些小功能》,本文關(guān)鍵詞  使用,python,對(duì),excel,表格,;如發(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對(duì)excel表格處理的一些小功能》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于使用python對(duì)excel表格處理的一些小功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    靖远县| 安乡县| 讷河市| 辽阳市| 富阳市| 宝清县| 来宾市| 昔阳县| 高邑县| 襄垣县| 都江堰市| 高邮市| 年辖:市辖区| 上蔡县| 靖州| 茶陵县| 八宿县| 宣恩县| 略阳县| 莱州市| 曲周县| 竹溪县| 勃利县| 太仓市| 贡山| 正蓝旗| 女性| 浦江县| 修武县| 巫山县| 喀什市| 台东县| 平阳县| 诏安县| 治多县| 沧源| 长武县| 上犹县| 蓝田县| 大关县| 泽州县|