Myluzh Blog

Python pandas 数据结构-DataFrame

发布时间: 2023-7-21 文章作者: myluzh 分类名称: Python 朗读文章


0x00 关于DataFrame
DataFrame是一个类似于二维数组或表格(如excel)的对象,既有行索引,又有列索引
  • 行索引,表明不同行,横向索引,叫index,0轴,axis=0
  • 列索引,表名不同列,纵向索引,叫columns,1轴,axis=1
点击查看原图

0x01 创建一个dataframe
import pandas as pd
import numpy as np

# 创建一个ndarray,10行5列学生成绩
score = np.random.randint(40, 100, (10, 5))

# 变成dataframe格式
subjects = ['语文', '数学', '英语', '科学', '政治']
stu = ['学生' + str(_) for _ in range(score.shape[0])]  # ['学生0', '学生1', '学生2', '学生3', '学生4', '学生5', '学生6', '学生7', '学生8', '学生9']
# index是行索引,columns是列索引
data = pd.DataFrame(score, index=stu, columns=subjects)
"""
     语文  数学  英语  科学  政治
学生0  75  80  78  68  49
学生1  92  42  86  43  44
学生2  55  50  75  49  78
学生3  63  85  85  82  40
学生4  66  93  44  67  40
学生5  58  46  77  99  58
学生6  65  81  78  62  83
学生7  41  90  91  85  84
学生8  81  75  64  60  60
学生9  83  60  94  63  64
"""

0x02 DataFrame的使用

# 获取values值
print(data.values)
# 获取列索引
print(data.columns)  # Index(['语文', '数学', '英语', '科学', '政治'], dtype='object')
# 获取行索引
print(data.index)  # Index(['学生0', '学生1', '学生2', '学生3', '学生4', '学生5', '学生6', '学生7', '学生8', '学生9'], dtype='object')
# 转置.T
print(data.T)
"""
    学生0  学生1  学生2  学生3  学生4  学生5  学生6  学生7  学生8  学生9
语文   40   76   92   51   75   67   94   94   81   70
数学   59   66   63   78   80   76   81   55   67   45
英语   66   69   52   75   44   94   67   90   97   54
科学   83   79   97   66   43   74   96   54   55   51
政治   45   74   97   79   88   86   42   58   83   56
"""
# 显示前五行
print(data.head(5))
# 显示后五行
print(data.tail(5))

0x03 重设索引
# new_stu为新索引
new_stu = ['人员' + str(_) for _ in range(score.shape[0])]
data.index = new_stu  # 设置索引
print(data)
"""
     语文  数学  英语  科学  政治
人员0  86  49  73  48  57
人员1  87  95  76  93  63
人员2  41  53  68  68  41
人员3  51  85  93  64  56
人员4  74  64  83  94  95
人员5  40  82  77  72  69
人员6  44  98  54  65  86
人员7  44  66  43  91  96
人员8  66  66  59  61  65
人员9  72  59  86  44  54
"""
print(data.reset_index(drop=True))  # drop=True 不保留之前是索引
"""
   语文  数学  英语  科学  政治
0  86  49  73  48  57
1  87  95  76  93  63
2  41  53  68  68  41
3  51  85  93  64  56
4  74  64  83  94  95
5  40  82  77  72  69
6  44  98  54  65  86
7  44  66  43  91  96
8  66  66  59  61  65
9  72  59  86  44  54
"""

0x05 以某列值设置为新索引
以某列值设置为新的索引 set index(keys, drop=True)
  • keys: 列索引名成或者列索引名称的列表
  • drop: boolean, default True当做新的索引,删除原来的列
设置新索引案例

标签: python pandas 数据结构 dataframe

发表评论