学习日记1—— .reset_index()详细解析

在之前学习了python基础的情况下,没有运用到实际场景中,缺乏敲代码的经验,所以感觉很难掌握这门编程语言,虽然不是科班出生,但是对这方面比较感兴趣,所以打算利用空余时间学习积累,并通过CSDN记录我的学习日记~


概念

reset_index() 是 Pandas 库中的一个函数,通常用于 DataFrame 对象。调用这个函数后,会创建一个新的 DataFrame,其中包含原始 DataFrame 的数据以及索引列。在新的 DataFrame 中,原始的索引被转换为一列,并被命名为 ‘index’(除非通过 name 参数指定了其他名称)。

reset_index()的用途:

1.重置索引:如果你有一个 DataFrame,并且想要重置其索引,使其从0开始,你可以使用 reset_index() 方法,用于将 DataFrame 的索引(index)重置为默认整数索引。并且可以选择是否保留原来的索引作为新的列。这通常在分组操作之后使用,比如在使用 groupby() 方法后,每组的索引可能会变成分组键,而不是原始的整数索引。

import pandas as pd

# 假设 df 是原始的 DataFrame
df_reset = df.reset_index()

#df_reset 是 reset_index() 函数调用的返回值,即新生成的 DataFrame。这个新的 DataFrame 包含了原始 DataFrame 的数据,并且索引被重置为从 0 开始的整数索引。以及增加了一个名为 ‘index’ 的新列,该列包含了原始 DataFrame 的索引值。原始 DataFrame df 保持不变。
import pandas as pd

# 假设 df 是原始的 DataFrame
df = df.reset_index()
#df 被赋值为 reset_index() 函数的返回值。这意味着原始 DataFrame df 被修改了,变成了一个新的 DataFrame,其索引被重置。在这种情况下,原始 DataFrame df 和 df_reset 指向的是同一个对象。

第一个示例中,原始 DataFrame 保持不变,而第二个示例中,原始 DataFrame 被修改了。如果您想保留原始 DataFrame 并得到一个新的 DataFrame,应该使用第一个示例中的方法。如果您想直接修改原始 DataFrame,可以使用第二个示例中的方法。

如果想保留原来的索引:

df = df.reset_index(drop=False)
#如果使用 drop=True,那么原来的索引将被丢弃,不会出现在 DataFrame 中。

如果想重置索引而不创建新 DataFrame,可以使用 inplace=True 参数:

df.reset_index(inplace=True)
#这样做会将修改应用到原始 DataFrame 上,而不是创建一个新的 DataFrame。在这种情况下,原始 DataFrame 的索引将被重置,并且会新增一个名为 ‘index’(或你指定的其他名称)的列。

2.分组后重置索引:在分组操作后,每个组的索引是分组键,如果你想对每个组进行操作后重置索引,可以使用 reset_index()。

#根据某列(例如’column’)对 DataFrame 进行分组
grouped = df.groupby('column')
#计算每个组的和,并重置索引
grouped_sum = grouped.sum().reset_index()

例子

假设我们有一个简单的 DataFrame,它包含了学生的姓名和他们的考试成绩。

import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({
    '姓名': ['张三', '李四', '王五'],
    '分数': [85, 92, 78]
})

# 默认的索引是 0, 1, 2
print("原始 DataFrame:")
print(df)

运行结果

在这个例子中,原始的 DataFrame 有数字索引 0, 1, 2。

# 现在我们想要将索引重置为学生的姓名
df_reset = df.reset_index()

# 重置后的索引是 '张三', '李四', '王五'
print("\n重置索引后的 DataFrame:")
print(df_reset)

当我们调用 reset_index() 方法时,Pandas 将索引重置为 DataFrame 的第一列(‘姓名’),并且将原来的索引作为一个新的列添加到 DataFrame 中。

运行结果

所以,重置后的 DataFrame 包含了学生的姓名作为索引,并且多了一个名为 ‘索引’ 的新列,列出了原来的索引值。

注:在这个例子中,reset_index() 方法的 drop=True 参数没有被使用,所以原来的索引值被作为一个新列保留了下来。


补充

在Python中,特别是在使用pandas库时,reset_index()是一个用于重置DataFrame索引的函数。如果在调用这个函数时前面加了一个点(.),这表示该操作是在当前对象上直接执行的,而不需要单独调用函数。

这里的.表示对df对象本身的操作,reset_index()是一个方法(method),它被绑定到了df对象上。调用这个方法会修改df对象本身,重置其索引。

如果不加点,而是作为独立函数调用:

df_reset = reset_index(df)

这里reset_index是一个普通的函数,你需要将DataFrame作为参数传递给它,并且它会返回一个新的DataFrame,而不是修改原来的DataFrame。在这种情况下,df_reset和df是两个不同的对象。

总结:加不加点取决于你是直接对当前对象进行操作,还是将操作作为一个独立的函数调用。加点的用法更加简洁,并且直接修改了当前对象。

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值