新聞中心
使用 Pandas 輕松刪除多行數(shù)據(jù)庫(kù)記錄

創(chuàng)新互聯(lián)建站成立十載來(lái),這條路我們正越走越好,積累了技術(shù)與客戶(hù)資源,形成了良好的口碑。為客戶(hù)提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、申請(qǐng)域名、網(wǎng)絡(luò)營(yíng)銷(xiāo)、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀(guān)、功能強(qiáng)大、用戶(hù)體驗(yàn)好、性?xún)r(jià)比高、打開(kāi)快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)建站通過(guò)對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶(hù)提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶(hù),共同發(fā)展進(jìn)步。
在數(shù)據(jù)分析和處理的過(guò)程中,經(jīng)常需要對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行刪除操作。在傳統(tǒng)的 SQL 數(shù)據(jù)庫(kù)中,我們通常使用 DELETE 語(yǔ)句來(lái)完成這項(xiàng)任務(wù)。而在 Python 中,我們可以使用 Pandas 庫(kù)來(lái)完成刪除多行記錄的操作,既快速又方便。
Pandas 簡(jiǎn)介
Pandas 是一個(gè)強(qiáng)大的數(shù)據(jù)處理庫(kù),它提供了大量的數(shù)據(jù)結(jié)構(gòu)和方法,可以方便地進(jìn)行數(shù)據(jù)讀取、數(shù)據(jù)清洗、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)分析等操作。Pandas 提供了兩種主要的數(shù)據(jù)結(jié)構(gòu):Series 和 DataFrame。使用 Series 可以表示一維數(shù)組,而 DataFrame 則可以表示二維的表格數(shù)據(jù)。
刪除多行記錄的方法
使用 Pandas 刪除多行記錄非常簡(jiǎn)單,只需要將需要?jiǎng)h除的行的索引作為參數(shù)傳遞給 DataFrame 的 drop() 方法即可。下面是示例代碼:
“`
import pandas as pd
# 讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)
df = pd.read_csv(“data.csv”)
# 打印數(shù)據(jù)的前五行
print(df.head())
# 刪除前五行數(shù)據(jù)
df = df.drop([0,1,2,3,4])
# 打印刪除后的數(shù)據(jù)
print(df.head())
“`
在這個(gè)示例中,我們首先使用 Pandas 的 read_csv() 方法從一個(gè) CSV 文件中讀取了數(shù)據(jù)。然后使用 head() 方法打印了數(shù)據(jù)的前五行,以便檢查數(shù)據(jù)的正確性。
接下來(lái),我們使用 drop() 方法刪除了前五行數(shù)據(jù)。drop() 方法的參數(shù)是一個(gè)列表,包含了需要?jiǎng)h除的行的索引。在這個(gè)示例中,我們刪除了索引號(hào)為 0 到 4 的五行數(shù)據(jù)。
我們?cè)俅问褂?head() 方法打印了刪除后的數(shù)據(jù),以確保刪除操作執(zhí)行正確。
在數(shù)據(jù)分析和處理的過(guò)程中,使用 Pandas 刪除多行記錄是非常方便和有效的。我們只需要提供需要?jiǎng)h除的行的索引,然后使用 DataFrame 的 drop() 方法即可完成刪除操作。Pandas 還提供了很多其他強(qiáng)大的數(shù)據(jù)處理方法,可以大大提高數(shù)據(jù)處理的效率。
相關(guān)問(wèn)題拓展閱讀:
- pandas python 怎么刪除表格中的某一行
- pandas中如何刪除一個(gè)表格中的子表格
pandas python 怎么刪除表格中的某一行
直接del DF或者采用drop方法就如段能解決。
具體渣明譽(yù)操槐洞作方法:
一、直接del DF;
二、采用drop方法,有下面三種等價(jià)的表達(dá)式:
1. DF= DF.drop(‘column_name’, 1);
2. DF.drop(‘column_name’,axis=1, inplace=True);
3. DF.drop(DF.columns, axis=1,inplace=True) # Note: zero indexed。
某列中所有的數(shù)據(jù)都是1,加起來(lái)不就是總行數(shù)嗎?引言本文的目的,是向您展示如何使用pandas來(lái)執(zhí)行一些常見(jiàn)的Excel任務(wù)。有些例子比較瑣碎,但我覺(jué)得展示這些簡(jiǎn)單的東西與那些你可以在其他地方找到的復(fù)雜功能同等重要。作為額外的福利,我將會(huì)進(jìn)行一些模糊字符串匹配,以此來(lái)展示一些小花樣,以及展示pandas是如何利用完整的Python模塊系統(tǒng)去做一些在Python中是簡(jiǎn)單,但在Excel中卻很復(fù)雜的事情的。有道理吧?讓我們開(kāi)始吧。為某行添加求和項(xiàng)我要介紹的之一項(xiàng)任務(wù)是把某幾列相加然后添加一個(gè)總和欄。首先我們將excel數(shù)據(jù)導(dǎo)入到pandas數(shù)據(jù)框架中。importpandasaspdimportnumpyasnpdf=pd.read_excel(“模扮excel-comp-data.xlsx”)df.head()我們想要添加一個(gè)總和欄來(lái)顯示Jan、Feb和Mar三個(gè)月的銷(xiāo)售總額。在Excel和pandas中這都是簡(jiǎn)單直接的。對(duì)于Excel,我在J列中添加了公式sum(G2:I2)。在Excel中看上去是這樣的:下面,我們是這樣在pandas中操作的:df=df+df+dfdf.head()接下來(lái),讓我們對(duì)各列計(jì)算一些匯總信息以及其他值。如下Excel表所示,我們要做這些工作:如你所見(jiàn),我們?cè)诒硎驹路莸牧械牡?7行添加了SUM(G2:G16),來(lái)取得每月的總和。進(jìn)行在pandas中進(jìn)行列級(jí)別的分析很簡(jiǎn)單。下面是一些例子:df.sum(),df.mean(),df.min(),df.max()(,97466.,10000,162023)現(xiàn)在我們要把每月的總和相加得到它們的和。這里pandas和Excel有點(diǎn)不同。在Excel的單元格里把每個(gè)月的總和相加很簡(jiǎn)單。由于pandas需要維護(hù)整個(gè)DataFrame的完整性,所以需要一些額外的步驟。首先,建立所有列的總和欄sum_row=df>.sum()sum_rowJanFebMar717000totaldtype:int64這很符合直覺(jué),不過(guò)如果你希望將總悶埋和值顯示為表格中的單獨(dú)一行,你還需要做一些微調(diào)。我們需要把數(shù)據(jù)進(jìn)行變換,把這一系列數(shù)字轉(zhuǎn)換為DataFrame,這樣才能更加容易的把它合并進(jìn)已經(jīng)存在的數(shù)據(jù)中。T函數(shù)可以讓我們把按行排列的數(shù)據(jù)變換為按列排列。df_sum=pd.DataFrame(data=sum_row).Tdf_sum在計(jì)算總和之前我們要做的最后一件事情是添加丟失的列。我們使用reindex來(lái)幫助我們完成。技巧是添加全部的列然旦罩灶后讓pandas去添加所有缺失的數(shù)據(jù)。df_sum=df_sum.reindex(columns=df.columns)df_sum現(xiàn)在我們已經(jīng)有了一個(gè)格式良好的DataFrame,我們可以使用append來(lái)把它加入到已有的內(nèi)容中。df_final=df.append(df_sum,ignore_index=True)df_final.tail()額外的數(shù)據(jù)變換另外一個(gè)例子,讓我們嘗試給數(shù)據(jù)集添加狀態(tài)的縮寫(xiě)。對(duì)于Excel,最簡(jiǎn)單的方式是添加一個(gè)新的列,對(duì)州名使用vlookup函數(shù)并填充縮寫(xiě)欄。我進(jìn)行了這樣的操作,下面是其結(jié)果的截圖:你可以注意到,在進(jìn)行了vlookup后,有一些數(shù)值并沒(méi)有被正確的取得。這是因?yàn)槲覀兤村e(cuò)了一些州的名字。在Excel中處理這一問(wèn)題是一個(gè)巨大的挑戰(zhàn)(對(duì)于大型數(shù)據(jù)集而言)幸運(yùn)的是,使用pandas我們可以利用強(qiáng)大的python生態(tài)系統(tǒng)。考慮如何解決這類(lèi)麻煩的數(shù)據(jù)問(wèn)題,我考慮進(jìn)行一些模糊文本匹配來(lái)決定正確的值。幸運(yùn)的是其他人已經(jīng)做了很多這方面的工作。fuzzywuzzy庫(kù)包含一些非常有用的函數(shù)來(lái)解決這類(lèi)問(wèn)題。首先要確保你安裝了他。我們需要的另外一段代碼是州名與其縮寫(xiě)的映射表。而不是親自去輸入它們,谷歌一下你就能找到這段代碼code。首先導(dǎo)入合適的fuzzywuzzy函數(shù)并且定義我們的州名映射表。fromfuzzywuzzyimportfuzzfromfuzzywuzzyimportprocessstate_to_code={“VERMONT”:”VT”,”GEORGIA”:”GA”,”IOWA”:”IA”,”ArmedForcesPacific”:”AP”,”GUAM”:”GU”,”KANSAS”:”KS”,”FLORIDA”:”FL”,”AMERICANSAMOA”:”AS”,”NORTHCAROLINA”:”NC”,”HAWAII”:”HI”,”NEWYORK”:”NY”,”CALIFORNIA”:”CA”,”ALABAMA”:”AL”,”IDAHO”:”ID”,”FEDERATEDSTATESOFMICRONESIA”:”FM”,”ArmedForcesAmericas”:”AA”,”DELAWARE”:”DE”,”ALASKA”:”AK”,”ILLINOIS”:”IL”,”ArmedForcesAfrica”:”AE”,”SOUTHDAKOTA”:”SD”,”CONNECTICUT”:”CT”,”MONTANA”:”MT”,”MASSACHUSETTS”:”MA”,”P(pán)UERTORICO”:”P(pán)R”,”ArmedForcesCanada”:”AE”,”NEWHAMPSHIRE”:”NH”,”MARYLAND”:”MD”,”NEWMEXICO”:”NM”,”MISSISSIPPI”:”MS”,”TENNESSEE”:”TN”,”P(pán)ALAU”:”P(pán)W”,”COLORADO”:”CO”,”ArmedForcesMiddleEast”:”AE”,”NEWJERSEY”:”NJ”,”UTAH”:”UT”,”MICHIGAN”:”MI”,”WESTVIRGINIA”:”WV”,”WASHINGTON”:”WA”,”MINNESOTA”:”MN”,”O(jiān)REGON”:”O(jiān)R”,”VIRGINIA”:”VA”,”VIRGINISLANDS”:”VI”,”MARSHALLISLANDS”:”MH”,”WYOMING”:”WY”,”O(jiān)HIO”:”O(jiān)H”,”SOUTHCAROLINA”:”SC”,”INDIANA”:”IN”,”NEVADA”:”NV”,”LOUISIANA”:”LA”,”NORTHERNMARIANAISLANDS”:”MP”,”NEBRASKA”:”NE”,”ARIZONA”:”AZ”,”WISCONSIN”:”WI”,”NORTHDAKOTA”:”ND”,”ArmedForcesEurope”:”AE”,”P(pán)ENNSYLVANIA”:”P(pán)A”,”O(jiān)KLAHOMA”:”O(jiān)K”,”KENTUCKY”:”KY”,”RHODEISLAND”:”RI”,”DISTRICTOFCOLUMBIA”:”DC”,”ARKANSAS”:”AR”,”MISSOURI”:”MO”,”TEXAS”:”TX”,”MAINE”:”ME”}這里有些介紹模糊文本匹配函數(shù)如何工作的例子。process.extractOne(“Minnesotta”,choices=state_to_code.keys())(‘MINNESOTA’,95)process.extractOne(“AlaBAMMazzz”,choices=state_to_code.keys(),score_cutoff=80)現(xiàn)在我知道它是如何工作的了,我們創(chuàng)建自己的函數(shù)來(lái)接受州名這一列的數(shù)據(jù)然后把他轉(zhuǎn)換為一個(gè)有效的縮寫(xiě)。這里我們使用score_cutoff的值為80。你可以做一些調(diào)整,看看哪個(gè)值對(duì)你的數(shù)據(jù)來(lái)說(shuō)比較好。你會(huì)注意到,返回值要么是一個(gè)有效的縮寫(xiě),要么是一個(gè)np.nan所以域中會(huì)有一些有效的值。defconvert_state(row):abbrev=process.extractOne(row,choices=state_to_code.keys(),score_cutoff=80)ifabbrev:returnstate_to_code>returnnp.nan把這列添加到我們想要填充的單元格,然后用NaN填充它df_final.insert(6,”abbrev”,np.nan)df_final.head()我們使用apply來(lái)把縮寫(xiě)添加到合適的列中。df_final=df_final.apply(convert_state,axis=1)df_final.tail()我覺(jué)的這很酷。我們已經(jīng)開(kāi)發(fā)出了一個(gè)非常簡(jiǎn)單的流程來(lái)智能的清理數(shù)據(jù)。顯然,當(dāng)你只有15行左右數(shù)據(jù)的時(shí)候這沒(méi)什么了不起的。但是如果是15000行呢?在Excel中你就必須進(jìn)行一些人工清理了。分類(lèi)匯總在本文的最后一節(jié)中,讓我們按州來(lái)做一些分類(lèi)匯總(subtotal)。在Excel中,我們會(huì)用subtotal工具來(lái)完成。輸出如下:在pandas中創(chuàng)建分類(lèi)匯總,是使用groupby來(lái)完成的。df_sub=df_final>.groupby(‘a(chǎn)bbrev’).sum()df_sub然后,我們想要通過(guò)對(duì)dataframe中所有的值使用applymap來(lái)把數(shù)據(jù)單位格式化為貨幣。defmoney(x):return”${:,.0f}”.format(x)formatted_df=df_sub.applymap(money)formatted_df格式化看上去進(jìn)行的很順利,現(xiàn)在我們可以像之前那樣獲取總和了。sum_row=df_sub>.sum()sum_rowJanFebMar717000totaldtype:int64把值變換為列然后進(jìn)行格式化。df_sub_sum=pd.DataFrame(data=sum_row).Tdf_sub_sum=df_sub_sum.applymap(money)df_sub_sum最后,把總和添加到DataFrame中。final_table=formatted_df.append(df_sub_sum)final_table你可以注意到總和行的索引號(hào)是‘0’。我們想要使用rename來(lái)重命名它。final_table=final_table.rename(index={0:”Total”})final_table結(jié)論到目前為止,大部分人都已經(jīng)知道使用pandas可以對(duì)數(shù)據(jù)做很多復(fù)雜的操作——就如同Excel一樣。因?yàn)槲乙恢痹趯W(xué)習(xí)pandas,但我發(fā)現(xiàn)我還是會(huì)嘗試記憶我是如何在Excel中完成這些操作的而不是在pandas中。我意識(shí)到把它倆作對(duì)比似乎不是很公平——它們是完全不同的工具。但是,我希望能接觸到哪些了解Excel并且想要學(xué)習(xí)一些可以滿(mǎn)足分析他們數(shù)據(jù)需求的其他替代工具的那些人。我希望這些例子可以幫助到其他人,讓他們有信心認(rèn)為他們可以使用pandas來(lái)替換他們零碎復(fù)雜的Excel,進(jìn)行數(shù)據(jù)操作。
data.drop(n)可以刪除指含第i行
import pandas as pd
data=pd.DataFrame(,>)
print data.drop(0)
輸出結(jié)伏逗虧果為
缺神2
data.drop(n)可以刪州盯除第孝跡漏i行import pandas as pddata=pd.DataFrame(,>)print data.drop(0)輸出結(jié)巧爛果為
pandas中如何刪除一個(gè)表格中的子表格
鼠標(biāo)左鍵拖拉選中要?jiǎng)h除的區(qū)域,按“delete”鍵。
pandas刪除多行數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于pandas刪除多行數(shù)據(jù)庫(kù),使用pandas輕松刪除多行數(shù)據(jù)庫(kù)記錄,pandas python 怎么刪除表格中的某一行,pandas中如何刪除一個(gè)表格中的子表格的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁(yè)題目:使用pandas輕松刪除多行數(shù)據(jù)庫(kù)記錄(pandas刪除多行數(shù)據(jù)庫(kù))
轉(zhuǎn)載來(lái)源:http://www.5511xx.com/article/cdcsccj.html


咨詢(xún)
建站咨詢(xún)
