属性汇总
属性名 | 说明 |
T | DataFrame 的转置 |
at | 访问行/列标签对的单个值 |
attrs | 该数据集的全局属性字典 |
axes | 返回表示 DataFrame 轴的列表。 |
columns | DataFrame 的列标签。 |
dtypes | 返回 DataFrame 中的 dtype。 |
empty | 指示Series/DataFrame是否为空。 |
flags | 获取与此 pandas 对象关联的属性。 |
iat | 按整数位置访问行/列对的单个值。 |
iloc | (已弃用)纯粹基于整数位置的索引,用于按位置选择。 |
index | DataFrame 的索引(行标签)。 |
loc | 通过标签或布尔数组访问一组行和列。 |
ndim | 返回一个 int 表示轴数/数组维度。 |
shape | 返回表示 DataFrame 维度的元组。 |
size | 返回一个 int 表示该对象中元素的数量(数据量总数)。 |
style | 返回一个 Styler 对象。 |
values | 返回 DataFrame 的 Numpy 表示形式。 |
属性使用示例
声明原始数据框:
import pandas as pd
import numpy as np
data = {
'age': np.random.randint(10, 20, size=10),
'math': np.random.randint(40, 100, size=10),
'english': np.random.randint(50, 100, size=10),
'chinese': np.random.randint(60, 100, size=10)
}
df = pd.DataFrame(data)
# 原始数据框:
age math english chinese
0 13 77 91 90
1 11 90 85 66
2 11 47 93 81
3 11 40 57 96
4 15 56 61 64
5 18 48 67 87
6 19 63 64 74
7 14 54 79 83
8 14 51 97 97
9 15 86 80 76
1. T
print(df.T)
# 转置后的数据框
0 1 2 3 4 5 6 7 8 9
age 15 16 19 15 14 16 16 18 10 19
math 43 59 97 75 40 88 41 40 71 92
english 50 68 61 83 57 96 62 56 77 64
chinese 98 66 64 60 79 85 94 64 95 74
2. at、iat、loc、iloc
import pandas as pd
import numpy as np
data = {
'age': np.random.randint(10, 20, size=10),
'math': np.random.randint(40, 100, size=10),
'english': np.random.randint(50, 100, size=10),
'chinese': np.random.randint(60, 100, size=10)
}
df = pd.DataFrame(data)
print(f'源数据框:\n{df}')
print(f'使用at取值:{df.at[0, "age"]}')
print(f'使用iat取值:{df.iat[0, 0]}')
print(f'使用loc取值:{df.loc[0, "age"]}')
print(f'使用iloc取值:{df.iloc[0, 0]}')
print(f'使用loc取一组列:\n{df.loc[:, "age"]}')
print(f'使用iloc取一组行:\n{df.iloc[0, :]}')
df.at[0, 'age'] = 8
print(f'使用at更改数据框指定位置值:{df.at[0, "age"]}')
df.loc[0, 'age'] = 6
print(f'使用loc更改数据框指定位置值:{df.at[0, "age"]}')
# 数据输出:
源数据框:
age math english chinese
0 11 99 89 62
1 11 67 88 71
2 15 75 74 88
3 13 50 67 89
4 12 80 57 81
5 17 51 95 60
6 12 60 80 65
7 16 43 61 74
8 10 62 97 80
9 16 85 89 71
使用at取值:11
使用iat取值:11
使用loc取值:11
使用iloc取值:11
使用loc取一组列:
0 11
1 11
2 15
3 13
4 12
5 17
6 12
7 16
8 10
9 16
Name: age, dtype: int32
使用iloc取一组行:
age 11
math 99
english 89
chinese 62
Name: 0, dtype: int32
使用at更改数据框指定位置值:8
使用loc更改数据框指定位置值:6
- at、iat 与 loc、iloc相比,loc与iloc可以取数据框的一组行/列值,而at、iat只能取数据框的单个值。
- at、loc与iat、iloc相比,at、loc按标签取值,iat、iloc按位置取值。
- 四者均可对数据框数据进行修改。