自留 DataFrame索引及常見錯誤

2021-10-08 13:41:52 字數 1499 閱讀 2712

1. 想要用第幾行第幾列的形式索引

如第一行第二列

df=pd.read_csv('the_ans.csv')

print(df.iloc[1,2]) #iloc :用position來去定位

iloc與loc的區別:

df.iloc[ 0:5],選擇0-5行的所有值

df.iloc[ :, 0:2],選擇前兩列的所有值

df.loc[0],按索引選擇index為0的那一行的值

df.loc[0,『列名』],選擇按索引選擇index為0那一行『列名』那列的值

例:

有乙個資料表如下:

可以看到行標為7,列標為start的值為950,匯入到dataframe中,這個數應該表示為行5,start列,索引**如下:

#索引方式1,loc索引

df=pd.read_csv('the_ans.csv')

print(df.loc[5,'start']) #第5行,start列

#輸出結果

950process finished with exit code 0

#索引方式2,iloc索引

df=pd.read_csv('the_ans.csv')

print(df.iloc[5,1])

#輸出結果

950process finished with exit code 0

2. 讀取後用布林索引,發現一直無法索引

上面明明是有700,卻顯示false

檢視value:

print(gongkuang['start'].values)
發現values輸出的結果是字串,也就是說讀取出來的資料並不是數字,而是字串。這可能是因為讀取**的時候表頭是單詞,所以所有的數統一讀成了字串形式。

因此利用字串的形式進行索引:

print('判斷等於700',gongkuang['start']=='700')

value=gongkuang[(gongkuang.iloc[:,1]==700)].iloc[:,3] #等於700的這行的第三列(從0開始)數取出來

value=[float(x) for x in value] #然後再轉化為float形式

DataFrame 索引和復合索引

前面按照多個條件進行分組產生的索引是復合索引 一 索引 a 獲取index df.index b 指定index df.index c 重新設定index df.reindex a b c 注意 一般不用 d 指定某一列作為index df2 df1.set index o drop false d...

python中DataFrame多重索引問題

在python資料處理中如果實現excel透視表中的功能,則多重索引問題就比較突出了。近來為實現python自動郵件,需要對資料進行透視表功能,遇到多重索引和多表頭問題,下面總結下用法。一 多重索引 常規的單索引這裡就不多贅述了,主要來看下多索引的問題。pd.pivot table產生的多重索引問題...

Pandas中DataFrame重置索引

在pandas中,自定義索引後,有時候又需要恢復預設索引。import pandas as pd import numpy as np df pd.dataframe np.arange 20 reshape 5,4 columns a b c d dfab cd00 1231 4567 28910...