本文研究DataFrame基本功能,掌握这些技能,有助于你更好的了解DataFrame的结构
编号 | 属性或方法 | 解释描述 |
---|---|---|
1 | T 属性 | 转置行和列 |
2 | axes 属性 | 返回行轴标签和列轴标签 |
3 | dtypes 属性 | 数据类型 |
4 | empty 属性 | 判断是否为空 |
5 | ndim 属性 | 轴/数组维度大小 |
6 | shape 属性 | 维度的元组 |
7 | size 属性 | 元素的数量 |
8 | values 属性 | 以numpy.ndarray的形式表示DataFrame |
9 | head,tail 方法 | |
如果你希望行与列能够互换位置,行变成列,列变成行,那么是用T属性即可
import pandas as pd
data = [
{'语文': 90, '数学': 92},
{'语文': 98, '数学': 87},
{'语文': 87, '数学': 90},
{'语文': 90, '数学': 98},
]
df = pd.DataFrame(data, index=['小明', '小红', '小刚', '小丽'])
df.index.name = '姓名'
df.columns.name = '科目'
print(df)
print("*"*20)
reversed_df = df.T # 行与列倒置,行变成列,列变成行
print(reversed_df)
程序输出结果
科目 数学 语文
姓名
小明 92 90
小红 87 98
小刚 90 87
小丽 98 90
********************
姓名 小明 小红 小刚 小丽
科目
数学 92 87 90 98
语文 90 98 87 90
axes属性的内容是行轴标签和列轴标签
import pandas as pd
data = [
{'语文': 90, '数学': 92},
{'语文': 98, '数学': 87},
{'语文': 87, '数学': 90},
{'语文': 90, '数学': 98},
]
df = pd.DataFrame(data, index=['小明', '小红', '小刚', '小丽'])
df.index.name = '姓名'
df.columns.name = '科目'
print(df.axes)
程序输出内容
[Index(['小明', '小红', '小刚', '小丽'], dtype='object', name='姓名'), Index(['数学', '语文'], dtype='object', name='科目')]
dtypes属性的内容是数据的类型
import pandas as pd
data = [
{'语文': 90, '数学': 92},
{'语文': 98, '数学': 87},
{'语文': 87, '数学': 90},
{'语文': 90, '数学': 98},
]
df = pd.DataFrame(data, index=['小明', '小红', '小刚', '小丽'])
df.index.name = '姓名'
df.columns.name = '科目'
print(df.dtypes)
输出结果
科目
数学 int64
语文 int64
dtype: object
import pandas as pd
df = pd.DataFrame([])
df.index.name = '姓名'
df.columns.name = '科目'
print(df.empty) # True
DataFrame有行轴,有列轴,即便是空DataFrame, ndim的值也是2
import pandas as pd
data = [
{'语文': 90, '数学': 92},
{'语文': 98, '数学': 87},
{'语文': 87, '数学': 90},
{'语文': 90, '数学': 98},
]
df = pd.DataFrame(data, index=['小明', '小红', '小刚', '小丽'])
df.index.name = '姓名'
df.columns.name = '科目'
print(df.ndim) # 2
import pandas as pd
data = [
{'语文': 90, '数学': 92},
{'语文': 98, '数学': 87},
{'语文': 87, '数学': 90},
{'语文': 90, '数学': 98},
]
df = pd.DataFrame(data, index=['小明', '小红', '小刚', '小丽'])
df.index.name = '姓名'
df.columns.name = '科目'
print(df)
print(df.shape) # (4, 2)
程序输出结果
科目 数学 语文
姓名
小明 92 90
小红 87 98
小刚 90 87
小丽 98 90
(4, 2)
一共4行2列
import pandas as pd
data = [
{'语文': 90, '数学': 92},
{'语文': 98, '数学': 87},
{'语文': 87, '数学': 90},
{'语文': 90, '数学': 98},
]
df = pd.DataFrame(data, index=['小明', '小红', '小刚', '小丽'])
df.index.name = '姓名'
df.columns.name = '科目'
print(df.size)
4行2列,共8个元素
import pandas as pd
data = [
{'语文': 90, '数学': 92},
{'语文': 98, '数学': 87},
{'语文': 87, '数学': 90},
{'语文': 90, '数学': 98},
]
df = pd.DataFrame(data, index=['小明', '小红', '小刚', '小丽'])
df.index.name = '姓名'
df.columns.name = '科目'
print(type(df.values))
print(df.values)
程序输出结果
<class 'numpy.ndarray'>
[[92 90]
[87 98]
[90 87]
[98 90]]
快速查看头部和尾部的数据
import pandas as pd
data = [
{'语文': 90, '数学': 92},
{'语文': 98, '数学': 87},
{'语文': 87, '数学': 90},
{'语文': 90, '数学': 98},
]
df = pd.DataFrame(data, index=['小明', '小红', '小刚', '小丽'])
df.index.name = '姓名'
df.columns.name = '科目'
print(df.head(2))
print("*"*20)
print(df.tail(1))
程序输出结果
科目 数学 语文
姓名
小明 92 90
小红 87 98
********************
科目 数学 语文
姓名
小丽 98 90
QQ交流群: 211426309