Pandas 的 DataFrame.set_index(~)
使用其列之一設置 DataFrame 的索引。
參數
1.keys
| string
或 array-like
或 list<string>
用於索引的列的名稱。
2. drop
| boolean
| optional
-
如果是
True
,則用於索引的列將被刪除。 -
如果
False
,則該列將被保留。
默認情況下,drop=True
。
3. append
| boolean
| optional
-
如果是
True
,那麽列將被追加到當前索引。 -
如果
False
,則列將替換當前索引。
默認情況下,append=False
。
4. inplace
| boolean
| optional
-
如果是
True
,則源DataFrame將被修改並返回。 -
如果
False
,則將返回新的DataFrame。
默認情況下,inplace=False
。
5. verify_integrity
| boolean
| optional
-
如果是
True
,那麽如果新索引有重複項,則會引發錯誤。 -
如果
False
,則允許重複索引。
默認情況下,verify_integrity=False
。
返回值
具有新索引的DataFrame
。
例子
考慮以下 DataFrame :
df = pd.DataFrame({"A":[1,2], "B":[3,4], "C":[5,6]})
df
A B C
0 1 3 5
1 2 4 6
將單個列設置為索引
要將 A
列設置為 df
的索引:
df.set_index("A") # Returns a DataFrame
B C
A
1 3 5
2 4 6
這裏,分配給索引的名稱是列標簽,即 "A"
。
設置多列作為索引
要將列 A
和 B
設置為 df
的索引:
df.set_index(["A","B"])
C
A B
1 3 5
2 4 6
這裏,DataFrame 最終有 2 個索引。
保留用於索引的列
要保留將用作索引的列,請設置 drop=False
:
df.set_index("A", drop=False)
A B C
A
1 1 3 5
2 2 4 6
請注意 A
列仍然存在。
作為參考,這裏再次df
:
df
A B C
0 1 3 5
1 2 4 6
追加到當前索引
要將列附加到現有索引,請設置 append=True
:
df.set_index("A", append=True)
B C
A
0 1 3 5
1 2 4 6
請注意原始索引 [0,1]
是如何附加的。
就地設置索引
要就地設置索引,請提供 inplace=True
:
df.set_index("A", inplace=True)
df
B
A
1 3
2 4
如上麵的輸出所示,通過設置inplace=True
,將直接修改源DataFrame。當您確定不需要源 DataFrame 時,請選擇設置 inplace=True
,因為這將節省內存。
驗證完整性
考慮以下 DataFrame :
df = pd.DataFrame({"A":[1,1],"B":[3,4]})
df
A B
0 1 3
1 1 4
默認情況下, verify_integrity=False
,這意味著如果結果索引包含重複項,則不會引發錯誤:
df.set_index("A") # verify_integrity=False
B
A
1 3
1 4
請注意新索引如何包含重複值(兩個 1
),但沒有引發錯誤。
要在這種情況下拋出錯誤,請像這樣傳遞verify_integrity=True
:
df.set_index("A", verify_integrity=True)
ValueError: Index has duplicate keys: Int64Index([1], dtype='int64', name='A')
相關用法
- Python Pandas DataFrame set_axis方法用法及代碼示例
- Python Pandas DataFrame select_dtypes方法用法及代碼示例
- Python PySpark DataFrame selectExpr方法用法及代碼示例
- Python PySpark DataFrame select方法用法及代碼示例
- Python Pandas DataFrame sem方法用法及代碼示例
- Python Pandas DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame swaplevel方法用法及代碼示例
- Python PySpark DataFrame sampleBy方法用法及代碼示例
- Python PySpark DataFrame show方法用法及代碼示例
- Python Pandas DataFrame stack方法用法及代碼示例
- Python Pandas DataFrame shift方法用法及代碼示例
- Python Pandas DataFrame sort_index方法用法及代碼示例
- Python Pandas DataFrame size屬性用法及代碼示例
- Python Pandas DataFrame swapaxes方法用法及代碼示例
- Python PySpark DataFrame sort方法用法及代碼示例
- Python PySpark DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame sub方法用法及代碼示例
- Python Pandas DataFrame sum方法用法及代碼示例
- Python Pandas DataFrame std方法用法及代碼示例
- Python PySpark DataFrame summary方法用法及代碼示例
- Python Pandas DataFrame shape屬性用法及代碼示例
- Python Pandas DataFrame sort_values方法用法及代碼示例
- Python Pandas DataFrame slice_shift方法用法及代碼示例
- Python Pandas DataFrame squeeze方法用法及代碼示例
- Python Pandas DataFrame empty屬性用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | set_index method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。