pandas set

您所在的位置:网站首页 dataframe索引列读取 pandas set

pandas set

2024-07-13 06:24| 来源: 网络整理| 查看: 265

本内容来自:https://gairuo.com

看过来

《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。

本内容来自:https://gairuo.com

pandas.DataFrame.set_index 函数用于将 DataFrame 中的一个或多个列设置为索引。设置索引后,可以更高效地进行数据检索和操作。

语法

DataFrame.set_index(keys, *, drop=True, append=False, inplace=False, verify_integrity=False)

使用一个或多个现有列或数组(长度正确)设置 DataFrame 的索引(行标签)。索引可以替换现有索引或对其进行扩展。

参数:

keys:标签或类似数组或标签/数组列表 此参数可以是单个列键、与调用的 DataFrame 长度相同的单个数组,或包含列键和数组的任意组合的列表。在这里,“数组”包括 Series、Index、np.ndarray 和 Iterator 的实例。 drop:布尔值,默认 True 删除要用作新索引的列。 append:布尔值,默认 False 是否将列附加到现有索引。 inplace:布尔值,默认 False 是否修改 DataFrame 而不是创建一个新的。 verify_integrity:布尔值,默认 False 检查新索引是否有重复。否则,将检查推迟到必要时进行。将其设置为 False 将提高此方法的性能。

返回值:

DataFrame 或 None 更改后的行标签或如果 inplace=True 则为 None。

相关方法:

DataFrame.reset_index set_index 的相反操作。 DataFrame.reindex 更改到新索引或扩展索引。 DataFrame.reindex_like 更改到与其他 DataFrame 相同的索引。 示例

代码示例如下:

>>> df = pd.DataFrame({'month': [1, 4, 7, 10], ... 'year': [2012, 2014, 2013, 2014], ... 'ale': [55, 40, 84, 31]}) >>> df month year sale 0 1 2012 55 1 4 2014 40 2 7 2013 84 3 10 2014 31 # 将索引设置为成为‘month’列: >>> df.set_index('month') year sale month 1 2012 55 4 2014 40 7 2013 84 10 2014 31 # 使用列‘year’和‘month’创建一个 MultiIndex: >>> df.set_index(['year', 'onth']) sale year month 2012 1 55 2014 4 40 2013 7 84 2014 10 31 # 使用一个 Index 和一个列创建一个 MultiIndex: >>> df.set_index([pd.Index([1, 2, 3, 4]), 'year']) month sale year 1 2012 1 55 2 2014 4 40 3 2013 7 84 4 2014 10 31 # 使用两个 Series 创建一个 MultiIndex: >>> s = pd.Series([1, 2, 3, 4]) >>> df.set_index([s, s**2]) month year sale 1 1 1 2012 55 2 4 4 2014 40 3 9 7 2013 84 4 16 10 2014 31 Series 的 reset_index

Series 也有 reset_index() 方法。语法为:

Series.reset_index(level=None, *, drop=False, name=_NoDefault.no_default, inplace=False, allow_duplicates=False )

这在需要将索引视为列,或者索引无意义且需要在进行其他操作之前重置为默认值时非常有用。

参数:

level:整数、字符串、元组或列表,默认可选 对于具有 MultiIndex 的 Series,仅从索引中删除指定的级别。默认情况下删除所有级别。 drop:布尔值,默认 False 仅重置索引,而不将其作为列插入到新的 DataFrame 中。 name:对象,可选 用于包含原始 Series 值的列的名称。默认使用 self.name。当 drop 为 True 时,此参数将被忽略。 inplace:布尔值,默认 False 在原地修改 Series(不创建新对象)。 allow_duplicates:布尔值,默认 False 允许创建重复的列标签。 在 1.5.0 版本中新增。

返回值:

Series 或 DataFrame 或 None 当 drop 为 False(默认值)时,返回一个 DataFrame。新创建的列将在 DataFrame 中排在前面,后面是原始的 Series 值。当 drop 为 True 时,返回一个 Series。在任何一种情况下,如果 inplace 为 True,则不返回任何值。

示例:

>>> s = pd.Series([1, 2, 3, 4], name='foo', ... index=pd.Index(['a', 'b', 'c', 'd'], name='idx')) # 生成具有默认索引的 DataFrame。 >>> s.reset_index() idx foo 0 a 1 1 b 2 2 c 3 3 d 4 # 要指定新列的名称,请使用 name。 >>> s.reset_index(name='values') idx values 0 a 1 1 b 2 2 c 3 3 d 4 # 要生成一个新的 Series 并将默认设置为 drop 为 True。 >>> s.reset_index(drop=True) 0 1 1 2 2 3 3 4 Name: foo, dtype: int64 # 对于具有多级索引的 Series,level 参数很有用。 >>> arrays = [np.array(['bar', 'bar', 'baz', 'baz']), ... np.array(['one', 'two', 'one', 'two'])] >>> s2 = pd.Series( ... range(4), name='foo', ... index=pd.MultiIndex.from_arrays(arrays, ... names=['a', 'b'])) # 要删除索引的特定级别,请使用 level。 >>> s2.reset_index(level='a') a foo b one bar 0 two bar 1 one baz 2 two baz 3 # 如果未设置 level,则从索引中删除所有级别。 >>> s2.reset_index() a b foo 0 bar one 0 1 bar two 1 2 baz one 2 3 baz two 3 场景 多重索引: 可以将多列设置为索引,创建多重索引。 数据清洗: 在数据预处理过程中,通过设置索引,可以更方便地进行数据清洗和操作。 高效查找: 设置索引后,可以更高效地进行数据查找和操作。 参考 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.set_index.html https://pandas.pydata.org/docs/reference/api/pandas.Series.reset_index.html 相关内容 pandas 指定列为基准相加两个数据 2024-03-22 09:12:13 pandas 按组将数据左右拼接 2023-02-12 20:13:17 pandas 合并两行为一行并调整行顺序 2022-03-15 20:53:37 pandas 按指定列堆叠数据 2021-05-19 21:29:36 pandas 函数详细介绍 reindex() 重新设置索引 >

更新时间:2024-07-10 13:57:51 标签:pandas python 索引 setindex



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3