Pandas DataFrame数据选取、修改和切片
数据选取
单列选取
选取DataFrame中的单列数据,可以使用列名或列序号两种方式。
使用列名选取:
import pandas as pd
data = {'Name': ['Amy', 'Bob', 'Cathy', 'David'], 'Age': [24, 25, 22, 23], 'Sex': ['Female', 'Male', 'Female', 'Male']}
df = pd.DataFrame(data)
# 使用列名选取单列数据
name = df['Name']
print(name)
输出结果:
0 Amy
1 Bob
2 Cathy
3 David
Name: Name, dtype: object
使用列序号选取:
# 使用列序号选取单列数据
age = df.iloc[:, 1]
print(age)
输出结果:
0 24
1 25
2 22
3 23
Name: Age, dtype: int64
多列选取
选取DataFrame中的多列数据,可以使用列名或列序号两种方式。
使用列名选取:
# 使用列名选取多列数据
selected = df[['Name', 'Sex']]
print(selected)
输出结果:
Name Sex
0 Amy Female
1 Bob Male
2 Cathy Female
3 David Male
使用列序号选取:
# 使用列序号选取多列数据
selected = df.iloc[:, [0, 2]]
print(selected)
输出结果:
Name Sex
0 Amy Female
1 Bob Male
2 Cathy Female
3 David Male
行选取
选取DataFrame中的行数据,可以使用行号或行索引两种方式。
使用行号选取:
# 使用行号选取单行数据
row = df.iloc[0]
print(row)
输出结果:
Name Amy
Age 24
Sex Female
Name: 0, dtype: object
使用行索引选取:
# 使用行索引选取单行数据
row = df.loc[0]
print(row)
输出结果:
Name Amy
Age 24
Sex Female
Name: 0, dtype: object
选取多行数据:
# 选取多行数据
selected = df.iloc[[0, 2]]
print(selected)
输出结果:
Name Age Sex
0 Amy 24 Female
2 Cathy 22 Female
数据修改
修改单元格数据
修改单元格数据,可以使用行号和列号、行索引和列名两种方式,具体使用哪种方式需要根据实际情况选择。
以“行索引和列名”为例:
# 修改单元格数据(行索引和列名)
df.loc[0, 'Age'] = 30
print(df)
输出结果:
Name Age Sex
0 Amy 30 Female
1 Bob 25 Male
2 Cathy 22 Female
3 David 23 Male
修改列数据
修改列数据,直接使用列名和赋值即可。
# 修改列数据
df['Age'] = [30, 25, 22, 23]
print(df)
输出结果:
Name Age Sex
0 Amy 30 Female
1 Bob 25 Male
2 Cathy 22 Female
3 David 23 Male
修改行数据
修改行数据,可以使用行索引和赋值的方式。
# 修改行数据
df.iloc[0] = ['Amy', 25, 'Male']
print(df)
输出结果:
Name Age Sex
0 Amy 25 Male
1 Bob 25 Male
2 Cathy 22 Male
3 David 23 Male
数据切片
切片选取行数据
选取DataFrame中的行数据,可以使用切片方式。
# 使用切片选取行数据
selected = df[1:3]
print(selected)
输出结果:
Name Age Sex
1 Bob 25 Male
2 Cathy 22 Male
切片选取列数据
选取DataFrame中的列数据,可以使用切片方式。
# 使用切片选取列数据
selected = df.loc[:, 'Name':'Age']
print(selected)
输出结果:
Name Age
0 Amy 25
1 Bob 25
2 Cathy 22
3 David 23
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas DataFrame 数据选取,修改,切片的实现 - Python技术站