1.读取chengji.csv文件到data对象中,显示学生考试成绩数据;

data = pd.read_csv("F:/DaiMa/MyJupyter/data/chengji.csv")

display(data)

2.产生多个列的汇总统计信息,并进行转置;

data_des=data.describe().transpose()

display(data_des)

3.统计各科空值记录数并保存在“null”列中;

data_des['null']=data.iloc[:,2:].isnull().sum()

display(data_des)

4.获取统计信息中“max”和“min”两列的内容;

data_des.loc[:,["max","min"]]

5.选取Oracle成绩大于85且Java成绩大于90的学生;

display(data[(data.oracle>85) & (data.Java>90)])

6.将data对象,按“C”和“Java”进行升序排列;

display(data.sort_values(by=["C","Java"]))

7.将data对象按“sex”列分组,并显示各组的人数;

display(data.groupby("sex")["sex"].count())

8.按“sex”列分组并对“C”列求和;

display(data.groupby("sex")["C"].sum())

9.按“sex”列分组并求各组中“C”列的最大;

display(data.groupby("sex")["C"].max())

10.如果“C”列值大于等于85,该值加10,否则值不变;

def add(x):

     if x>=85:

         return x+10

     else:

         return x

display(data['C'].apply(add))

11.删除含有缺失值的行;

display(data.dropna(axis=0,how="any"))

12.用0填补所有缺失值;

display(data.fillna(value=0))

13.使用前一行的值填充空缺值;

display(data.fillna(method="ffill"))

14.使用均值填充指定列的缺失值;

display(data.fillna(value=data["Java"].mean()))

15.数据分箱实现离散化,分箱的边界为60,70,80,90,100;

16.使用cut()函数进行数据分箱;

17.显示分箱结果;

grade=pd.Series([58,61,67,70,71,75,75,75,76,77,78,79,80,80,81,82,84,88,95])

bins = [60,70,80,90,100]

grade_cut=pd.cut(grade,bins)

print(grade_cut)

18.获取分箱编码;

print(grade_cut.cat.codes)

19.返回分箱便捷索引;

print(grade_cut.cat.categories)

20.统计箱中元素的个数;

print(grade_cut.value_counts())

21.进行带标签的分箱,标签为“pass”,”medium”,”good”,”excellent”;

22.获取标签分箱结果值;

label=["pass","medium","good","excellent"]

print(grade_cut.cat.rename_categories(label))

23.现某班19个同学“数据挖掘”课程的成绩,分别为58,61,67,70,71,75,75,75,76,77,78,79,80,80,81,82,84,88,95,编程求该组成绩的中位数、众数和极差,并画出该组成绩的箱线图。

grade_median=grade.median()

grade_mode=grade.mode()

grade_jicha=grade.max()-grade.min()

print("中位数:",grade_median)

print("众数:",grade_mode.tolist())

print("极差:",grade_jicha)

plt.boxplot(grade)

24.探索鸢尾花数据

from sklearn.datasets import load_iris

(1)将数据集保存为对象iris;

iris = pd.DataFrame(data=load_iris().data)

(2)创建数据框的列名[‘sepal_length’,’sepal_width’,’petal_length’,’petal_width’,’class’]

new_columns=['sepal_length','sepal_width','petal_length','petal_width']

iris.columns=new_columns

iris["class"]=load_iris().target

display(iris)

(3)数据框中是否有缺失值?

null = iris.isnull().sum()

print("数据框缺失值状况:\n",null)

(4)将petal_length列的第10~19行设置为缺失值;

iris.loc[9:18,['petal_length']]=None

display("替换为缺失值:",iris.loc[9:18,:])

(5)将petal_length列的缺失值全部替换为1.0;

iris.fillna(value=1.0,inplace=True)

display("将缺失值替换为1.0:",iris.loc[9:18,:])

(6)删除class列;

iris.drop('class', axis=1, inplace=True)

display("删除class列:",iris)

(7)将数据框的前3行设置为缺失值;

iris.loc[:2,:]=None

display("前三行设置为缺失值:",iris)

(8)删除有缺失值的行;

iris.dropna(axis=0,how='any',inplace=True)

display("删除所有缺失行:",iris)

(9)重新设置索引。

iris.reset_index(drop=True,inplace=True)

display("重新设置索引:",iris)

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐