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]
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]
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dd02f223950fbe3acc8d62ae36457851.png)
4. 列表索引
示例:
import pandas as pd
filtered_df = df[df['ip'].isin(ip_list)]
print(filtered_df)