Pandas库的运用
目录
一、实验目的和要求
(1)分别设计一个一维数据表格和一个二维的数据表格,使用pandas库分别创建一个Series对象和DataFrame对象。
(2)对创建的Series对象和DataFrame对象练习索引操作。
(3)对创建的Series对象和DataFrame对象练习排序操作。
(4)设计一个新的DataFrame对象,练习DataFrame对象的统计计算和统计描述的功能。
(5)能够熟练使用Pandas库创建Series对象和DataFrame对象,并对对创建的对象索引、排序,及统计计算和分析操作。
二、实验环境
Windows 11系统
Anaconda Navigator
Jupyter Notebook
三、实验内容
1. 创建一个DataFrame(df),用data做数据,labels做行索引
import numpy as np data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'], 'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3], 'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1], 'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']} labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
2.显示有关此df及其数据的基本信息的摘
3.查看此df的前三行数据
4. 选择df中列标签为animal和age的数据
5.选择行为[‘d’, ‘e’, ‘i’],且列为['animal', 'age']中的数据
6.选择visuts大于3的行
7.选择age为缺失值的行
8.选择animal为cat,且age小于3的行
9.将f行的age改为1.5
10.计算visits列的数据总和
11.计算每种animal的平均age
12.追加一行(k),列的数据自定义(如可以等于a行的数据),然后再删除新追加的k行
13.计算每种animal的个数(cat有几个,dog几个...)
14.先根据age降序排列,再根据visits升序排列
15.将priority列的yes和no用True和False替换
16.将animal列的snake用python替换
四、实验步骤和结果
1. 创建一个DataFrame(df),用data做数据,labels做行索引
2.显示有关此df及其数据的基本信息的摘
import pandas as pd
import numpy as np
data = {'animal': pd.Series(['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],
index=labels),
'age': pd.Series([2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],
index=labels),
'visits': pd.Series([1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
index=labels),
'priority': pd.Series(['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no'],
index=labels)}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
df = pd.DataFrame(data)
print(df)
3.查看此df的前三行数据
print(df[0:3])
4. 选择df中列标签为animal和age的数据
print(df[['animal','age']])
5.选择行为[‘d’, ‘e’, ‘i’],且列为['animal', 'age']中的数据
print(df.loc[['d','e','i'],['animal','age']])
6.选择visuts大于3的行
visits_bool = df['visits']>3
print(df[visits_bool])
7.选择age为缺失值的行
age_bool = df['age'].isnull()
print(df[age_bool])
8.选择animal为cat,且age小于3的行
print(df[(df['animal']=="cat")&(df["age"]<3)])
9.将f行的age改为1.5
df.loc[['f'],['age']] = 1.5
print(df)
10.计算visits列的数据总和
print(sum(df['visits']))
11.计算每种animal的平均age
print(df.groupby('animal')['age'].mean())
12.追加一行(k),列的数据自定义(如可以等于a行的数据),然后再删除新追加的k行
df.loc['k']=df.loc['a'].values
print(df)
print(df.drop('k'))
13.计算每种animal的个数(cat有几个,dog几个...)
print(df.groupby('animal').size())
14.先根据age降序排列,再根据visits升序排列
df.sort_values(by=['age', 'visits'], ascending=[False, True])
15.将priority列的yes和no用True和False替换
df['priority'] = df['priority'].replace(to_replace=['yes', 'no'], value=[True, False])
print(df)
16.将animal列的snake用python替换
df['animal'] = df['animal'].replace(to_replace='snake', value='python')
print(df)