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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。