import pandas as pd
1. 直接索引
df = pd.DataFrame({'AdmissionDate': ['2021-01-25','2021-01-22','2021-01-20',
'2021-01-18','2021-01-17','2021-01-17','2021-01-21'],
'StudentID': [7,1,3,2,6,3,4],
'Name': ['Jack','Shyam','Mohan','Janne','Lucky','Abhinav','Danny'],
'Stream':['CSE','ECE','Civil','Mechanical','CSE','IT','EEE']
})
df.set_index("Name",inplace=True)
print(df["AdmissionDate"])
print(df[["AdmissionDate","StudentID"]])
Name
Jack 2021-01-25
Shyam 2021-01-22
Mohan 2021-01-20
Janne 2021-01-18
Lucky 2021-01-17
Abhinav 2021-01-17
Danny 2021-01-21
Name: AdmissionDate, dtype: object
AdmissionDate StudentID
Name
Jack 2021-01-25 7
Shyam 2021-01-22 1
Mohan 2021-01-20 3
Janne 2021-01-18 2
Lucky 2021-01-17 6
Abhinav 2021-01-17 3
Danny 2021-01-21 4
df[1:3]
|
AdmissionDate |
StudentID |
Stream |
Name |
|
|
|
Shyam |
2021-01-22 |
1 |
ECE |
Mohan |
2021-01-20 |
3 |
Civil |
df["AdmissionDate"] = pd.to_datetime(df["AdmissionDate"])
df.set_index("AdmissionDate",inplace=True)
df.sort_index().loc["2021-01-01":"2021-01-20",:]
|
StudentID |
Stream |
AdmissionDate |
|
|
2021-01-17 |
6 |
CSE |
2021-01-17 |
3 |
IT |
2021-01-18 |
2 |
Mechanical |
2021-01-20 |
3 |
Civil |
2. 布尔索引
df = pd.DataFrame({'AdmissionDate': ['2021-01-25','2021-01-22','2021-01-20',
'2021-01-18','2021-01-17','2021-01-17','2021-01-21'],
'StudentID': [7,1,3,2,6,3,4],
'Name': ['Jack','Shyam','Mohan','Janne','Lucky','Abhinav','Danny'],
'Stream':['CSE','ECE','Civil','Mechanical','CSE','IT','EEE']
})
df["AdmissionDate"] = pd.to_datetime(df["AdmissionDate"])
df.set_index("Name",inplace=True)
df
|
AdmissionDate |
StudentID |
Stream |
Name |
|
|
|
Jack |
2021-01-25 |
7 |
CSE |
Shyam |
2021-01-22 |
1 |
ECE |
Mohan |
2021-01-20 |
3 |
Civil |
Janne |
2021-01-18 |
2 |
Mechanical |
Lucky |
2021-01-17 |
6 |
CSE |
Abhinav |
2021-01-17 |
3 |
IT |
Danny |
2021-01-21 |
4 |
EEE |
df[df["StudentID"]==2]
|
AdmissionDate |
StudentID |
Stream |
Name |
|
|
|
Janne |
2021-01-18 |
2 |
Mechanical |
from datetime import datetime
df[(df["StudentID"]>=3) & (df["AdmissionDate"]>="2021-01-20")]
2021-01-20 00:00:00
|
AdmissionDate |
StudentID |
Stream |
Name |
|
|
|
Jack |
2021-01-25 |
7 |
CSE |
Mohan |
2021-01-20 |
3 |
Civil |
Danny |
2021-01-21 |
4 |
EEE |
df[(df["StudentID"]>=3) | (df["AdmissionDate"]>="2021-01-20")]
|
AdmissionDate |
StudentID |
Stream |
Name |
|
|
|
Jack |
2021-01-25 |
7 |
CSE |
Shyam |
2021-01-22 |
1 |
ECE |
Mohan |
2021-01-20 |
3 |
Civil |
Lucky |
2021-01-17 |
6 |
CSE |
Abhinav |
2021-01-17 |
3 |
IT |
Danny |
2021-01-21 |
4 |
EEE |
3. 索引器索引
Dataframe的loc和iloc属性
- loc属性:
- 以列名和行名作为参数,当只有一个参数时,默认是行名,即抽取整行数据,包括所有列
- iloc属性:
- 以行和列位置索引,作为参数。当只有一个参数时,默认是行索引,即抽取整行数据,包括所有列
df = pd.DataFrame({'AdmissionDate': ['2021-01-25','2021-01-22','2021-01-20',
'2021-01-18','2021-01-17','2021-01-17','2021-01-21'],
'StudentID': [7,1,3,2,6,3,4],
'Name': ['Jack','Shyam','Mohan','Janne','Lucky','Abhinav','Danny'],
'Stream':['CSE','ECE','Civil','Mechanical','CSE','IT','EEE']
})
df["AdmissionDate"] = pd.to_datetime(df["AdmissionDate"])
df.set_index("Name",inplace=True)
df
|
AdmissionDate |
StudentID |
Stream |
Name |
|
|
|
Jack |
2021-01-25 |
7 |
CSE |
Shyam |
2021-01-22 |
1 |
ECE |
Mohan |
2021-01-20 |
3 |
Civil |
Janne |
2021-01-18 |
2 |
Mechanical |
Lucky |
2021-01-17 |
6 |
CSE |
Abhinav |
2021-01-17 |
3 |
IT |
Danny |
2021-01-21 |
4 |
EEE |
3.1 loc索引器
df.loc["Jack"]
AdmissionDate 2021-01-25 00:00:00
StudentID 7
Stream CSE
Name: Jack, dtype: object
df.loc[["Jack","Janne"],["StudentID","Stream"]]
|
StudentID |
Stream |
Name |
|
|
Jack |
7 |
CSE |
Janne |
2 |
Mechanical |
df.loc[df["StudentID"]>=2,["Stream","AdmissionDate"]]
|
Stream |
AdmissionDate |
Name |
|
|
Jack |
CSE |
2021-01-25 |
Mohan |
Civil |
2021-01-20 |
Janne |
Mechanical |
2021-01-18 |
Lucky |
CSE |
2021-01-17 |
Abhinav |
IT |
2021-01-17 |
Danny |
EEE |
2021-01-21 |
df.loc["Jack":"Janne","AdmissionDate":"StudentID"]
|
AdmissionDate |
StudentID |
Name |
|
|
Jack |
2021-01-25 |
7 |
Shyam |
2021-01-22 |
1 |
Mohan |
2021-01-20 |
3 |
Janne |
2021-01-18 |
2 |
3.2 iloc索引器
iloc索引器与loc索引器的使用几乎相同,唯一不同的是,iloc索引器中只能使用原始索引,不能使用自定义索引。
注意:原始索引初值从0开始,切片前闭后开。自定义索引切片为闭区间
df.iloc[1:3,1:2]
|
StudentID |
Name |
|
Shyam |
1 |
Mohan |
3 |
带步长的索引
df.iloc[::2]

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!