最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python-pandas返回重復(fù)數(shù)據(jù)的index問題

 更新時間:2024年02月20日 15:05:06   作者:Vergil_Zsh  
這篇文章主要介紹了Python-pandas返回重復(fù)數(shù)據(jù)的index問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

在處理數(shù)據(jù)的時候,會出先相同的列或者行,我們需要有時候需要對其中一列或者其中一行進(jìn)行操作

因為數(shù)據(jù)清洗的過程會碰到多種情況

下面是我碰到的一種情況

既有合并的又有空列

使用pandas進(jìn)行讀取后

現(xiàn)在需要以第一行作為列名,然后去掉NaN的列

讀取數(shù)據(jù)的時候,在pd.read_excel()中可以添加參數(shù)header=None這個參數(shù) 默認(rèn)沒有頭列

代碼如下

import pandas as pd
data = pd.read_excel('test.xlsx',header=None)

接下來處理為NaN的列

因為pandas讀取NaN只能判斷出狀態(tài),并不能作為選擇,這里需要轉(zhuǎn)變一個想法,我常用的是轉(zhuǎn)換為True or False,剛好pandas里面有自帶的函數(shù),代碼如下:

使用notna()函數(shù)

# 因為都進(jìn)來的數(shù)據(jù),我們需要的列名還是在第一行,固我們?nèi)〉谝恍械乃?
judge_nan_col = data.iloc[1,:].notna().tolist()
print(judge_nan_col)

tolist()是方便我們?nèi)ndex 

接下來是關(guān)鍵的部分了,因為有多個False,所以如果按照我們之前的list.index()這種是不可取的 

這里我以為大家演示下

返回的同一個索引,默認(rèn)是第一次出現(xiàn)的,所以這個方法是不可取的

這里有多個方法

1.使用list.index()方法

需要使用count()函數(shù)進(jìn)行計數(shù)

count = judge_nan_col.count(False)
index_list = []
index = -1

# 通過list.index()方法的__start參數(shù),指定起始索引
for i in range(0, count):
	index = judge_nan_col.index(False, index + 1)
	index_list.append(index)
print(index_list)

2.通過索引遍歷原列表,對每個元素進(jìn)行判斷

list_len = len(judge_nan_col)
index_list = []
for i in range(0, list_len):
    if judge_nan_col[i] == False:
        index_list.append(i)
print(index_list)

3.使用enumerate()函數(shù)

index_list = [i for i, col in enumerate(judge_nan_col) if col == False]
print(index_list)

目前我能想到的就這三種了

獲取到我們想要的列了,并且存到了列表中,這下就是進(jìn)行刪除了 

pandas自帶函數(shù)drop()就可以盡心行或列的刪除

# 可以根據(jù)需要看刪除哪一列,我這里是全部進(jìn)行刪除
data = data.drop(index_list,axis=1)
print(data)

現(xiàn)在離目標(biāo)很近了,就差第一行了,還是一樣,使用data.iloc()函數(shù),重新構(gòu)建dataframe

# 獲取列名
columns = data.iloc[1,:].tolist()
print('columns: ',columns,'\n')
print('=================================')
data = data.iloc[1:,:]
data.columns=columns
print(data)

輸出到excel

data.to_excel('complete.xlsx',index=False)

處理行,同上 不過刪除的時候

需要將data = data.drop(axis=0) 

axis=1 轉(zhuǎn)換為 axis=0

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

新密市| 通海县| 镇江市| 长沙县| 民勤县| 宜君县| 门源| 军事| 连南| 大英县| 蒙山县| 田林县| 嘉禾县| 日照市| 武夷山市| 莲花县| 安塞县| 灵川县| 博野县| 罗江县| 霸州市| 天门市| 安西县| 苍山县| 江孜县| 闽侯县| 新晃| 南靖县| 中宁县| 长宁区| 尖扎县| 云霄县| 潮州市| 合阳县| 壶关县| 分宜县| 德钦县| 南皮县| 肃宁县| 嫩江县| 湖州市|