Python pandas
pandas在處理數(shù)據(jù)還是很好用,但是存儲excel時在現(xiàn)有數(shù)據(jù)上追加比不方便了愚争。所以需要追加的還是用to_csv。
df?=?pd.read_csv(r'C:\Users\111\Desktop\1234.csv',converters={'staffno':str})? ?#如果表格中有0開頭的數(shù)字德绿,pandas默認(rèn)會去掉0辕录,把它轉(zhuǎn)成str就ok。
A?=['123456']? ? ? #設(shè)定一個字符串
data?=?df[df['統(tǒng)計'].isin(A)]? ?# 判斷在表格中‘統(tǒng)計’列里面是否存在A缓熟,如果有整行則返回給data, 判斷返回的series類型累魔,所以開頭用df轉(zhuǎn)成dataframe
這樣data里面就成了我們需要的整行信息。
data =?df.loc[df['統(tǒng)計']==A]? # 又或者這樣判斷統(tǒng)計列是否有A
if data.empty==False:? ? ? 判斷data是否為空够滑,不是則打印出來垦写。
? ? print(A+'is here')
data.to_csv(r'C:\Users\111\Desktop\1234.csv',index=False,header=False,mode='a')
dataframe類型時帶行序號的,我們在追加數(shù)據(jù)時不需要行序號彰触,所以index=False, 表頭也不需要header=False, mode時模式‘a(chǎn)’代表追加梯投。
data?=?df.loc[df['統(tǒng)計']==A]? ?#統(tǒng)計列中存在A就提取整行。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二况毅,使用pandas連接sql并生成數(shù)據(jù)導(dǎo)出:
import pandas as pd
import pymysql
db?=?pymysql.connect('localhost',user='用戶名',password='密碼',port=3306,database='數(shù)據(jù)庫名字')
df = pd.read_sql('select * from (表名);', con=db)
print(df)
df.to_excel(r'C:\Users\111\Desktop\python\mysql\123.xlsx', sheet_name="F10")
---------------------------------------
import?pandas?as?pd
df?=?pd.read_excel(r'C:\Users\111\Desktop\python\mysql\123.xlsx',keep_default_na=False)? #讀取123.xlsx文件分蓖,keep_default_na=False是空單元格不為nan,默認(rèn)把所有空的單元格設(shè)置為nan尔许。
print(df.shape[0])? ? ?#獲取最大行數(shù)
for?i?in?range(0,df.shape[0]):? ? ?#歷遍每一行
????if?df.loc[i,'name']?!='':? ? ? ? ? ? ? ?#每行的name列如果不為空則打印出內(nèi)容
????????print(df.loc[i,'name'])
????i=i-1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#i-1繼續(xù)下一行
---------------------------------------------------------------------------------------------------------------------
self.input_df?=?pd.read_excel(self.input_path,keep_default_na=False,converters={u'LPN':str})
# converters={u'LPN':str} 是把LPN列的數(shù)據(jù)已str的格式讀取么鹤,這樣LPN列0開頭的數(shù)字就不會丟失0