汇总pandas中的dataframe的索引操作

本文介绍了Pandas DataFrame中loc、iloc索引的灵活用法,包括行和列的精确选择,以及特殊索引技巧。同时详细讲解了如何修改DataFrame的索引和列名,以及数据遍历的方法。适合初学者理解DataFrame操作的底层原理。
摘要由CSDN通过智能技术生成

数据集

先建立好如下数据:

import pandas as pd

df = pd.DataFrame([['乔峰', '男', 95, '降龙十八掌', '主角'],
          ['虚竹', '男', 93, '天上六阳掌', '主角'],
          ['段誉', '男', 92, '六脉神剑', '主角'],
          ['王语嫣', '女', 95,'熟知武诀', '主角'],
          ['包不同', '男', 65, '胡搅蛮缠', '配角'],
          ['康敏', '女', 40, '惑夫妒人', '配角']],
          index=list('abcdef'.upper()),
          columns=['name', 'gender', 'score', 'skill', 'class'])
df

结果如下:
在这里插入图片描述

loc索引

这个loc索引非常灵活,所以搞得也有一点复杂。
1.完整

df.loc[["D"],:]#逗号前面是行后面是列,注意这个方法针对的是
#知道行索引和列索引的情况,并且返回的仍然是一个dataframe

在这里插入图片描述

2.单纯行索引

df.loc[["A","B"]]#也是返回dataframe

在这里插入图片描述
3.只有一个[],没有嵌套,返回series.

df.loc["A"]

在这里插入图片描述

所以我们可以使用上述返回某一个值,例如:

df.loc["A"]["name"]

在这里插入图片描述

iloc索引

我们现在要索引“王语嫣”,使用iloc应该如何?
数一下,发现其坐标是(3,0)。

df.iloc[3,0]

结果如下:
在这里插入图片描述
还有多次的索引例如索引第2行和第3行:

df.iloc[[1,2]]

那么series数据结构如何使用iloc索引呢?

#列索引直接得到series
dfn=df["name"]
print(type(dfn))
dfn

在这里插入图片描述

series使用iloc要注意的是,由于只有一列,所以iloc的行标照常写,列标由于一定是0,不用写了,写了将报错!

dfn.iloc[3]

在这里插入图片描述
最后提醒一下,iloc的行标和列标是严格顺序数下来的,和你的.index没有关系,即使上面数据的.index由原来的[A,B,C,D,E,F]换成[5,4,3,2,1,0],dfn.iloc[0]是输出“乔峰”,而不是“康敏”。

特殊索引

下面是我们很常见的一种办法,比较简洁。

df[:2]#其等价于df.iloc[:2]
#其中2代表前两行的意思,并不是行索引

#返回的是dataframe

在这里插入图片描述

修改索引

1.dataframe.index赋值进行整体修改。

index=[i for i in range(df.shape[0])]
df.index=index
df

在这里插入图片描述
注意到,单个修改将报错。

print(df.index)
df.index[3]=10

在这里插入图片描述
2.使用rename实现单个修改。

df.rename(index={3:10})

在这里插入图片描述
注意:上面没有实现真正的修改,真正修改可以:

df.rename(index={3:10},inplace=True)
#或者
df=df.rename(index={3:10})

修改columns索引的内容和index类似。

df.columns

在这里插入图片描述


有人问:如何遍历dataframe?

这太简单了,我们不是会使用了iloc吗?

iloc遍历其中一个元素上面已经讲了。那么如何遍历一行?(以第一行为例)。

df.iloc[0,:]
pandasDataFrame函数是用来创建和操作二维数据结构的。DataFrame可以看作是一个表格,类似于数据库的表或Excel的工作表。它由行索引和列索引组成,可以存储和处理大量的数据。 DataFrame函数可以接受不同类型的输入数据,包括列表、字典、Series和其他DataFrame。它可以用于数据分析、数据清洗、数据处理和数据可视化等任务。 以下是DataFrame函数的一些常用功能: - 创建DataFrame对象:可以通过传入字典、列表、Numpy数组等不同类型的数据来创建DataFrame对象。 - 访问和修改数据:可以使用行索引和列索引来访问和修改DataFrame的数据。可以通过标签或位置索引进行访问,也可以使用切片操作选择特定的行或列。 - 处理缺失数据:DataFrame提供了方法来处理缺失数据,例如使用fillna()函数填充缺失值或使用dropna()函数删除包含缺失值的行或列。 - 进行数据转换:可以使用DataFrame提供的方法进行数据转换,例如使用apply()函数对每一列或每一行应用自定义函数,或使用map()函数对某一列进行映射操作。 - 数据排序和过滤:可以使用sort_values()函数对DataFrame的数据进行排序,也可以使用条件过滤来选择满足特定条件的行或列。 - 数据统计和汇总DataFrame提供了各种方法来计算统计信息,例如sum()、mean()、max()、min()等,还可以使用groupby()函数进行分组统计。 - 数据合并和连接:可以使用merge()和concat()函数将多个DataFrame对象合并或连接成一个新的DataFrame
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值