pandas DataFrame基本功能

本文研究DataFrame基本功能,掌握这些技能,有助于你更好的了解DataFrame的结构

编号 属性或方法 解释描述
1 T 属性 转置行和列
2 axes 属性 返回行轴标签和列轴标签
3 dtypes 属性 数据类型
4 empty 属性 判断是否为空
5 ndim 属性 轴/数组维度大小
6 shape 属性 维度的元组
7 size 属性 元素的数量
8 values 属性 以numpy.ndarray的形式表示DataFrame
9 head,tail 方法

1. T 转置行与列

如果你希望行与列能够互换位置,行变成列,列变成行,那么是用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

2. axes 行轴标签和列轴标签

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='科目')]

3. dtypes 数据类型

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

4. empty 是否为空DataFrame

import pandas as pd


df = pd.DataFrame([])
df.index.name = '姓名'
df.columns.name = '科目'

print(df.empty)     # True

5. ndim 维度大小

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

6. shape 维度元组

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列

7. size 元素的数量

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个元素

8. values

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]]

9. head, tail方法

快速查看头部和尾部的数据

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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案