2015.5.26

<img src="https://img-blog.csdn.net/20150602175721050?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlqaWNodWNodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="https://img-blog.csdn.net/20150602175609121?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlqaWNodWNodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />#include<stdio.h>                                                                                                                                                                                                                                                                                   
#include <iostream>
#include<string>
using namespace std;
class student{
public:      
  string name;
  string num;
  string duixiang;

  student(string n,string m,string d):name(n),num(m),duixiang(d)
  {
  
  
  }
     
 
virtual void display()
  {}
      //.char dept[100];
};
class benkesheng:public student
{
public:
	 virtual void creatlb()
	 {}
benkesheng(string n,string m,string d):student(n,m,d){}
 virtual void display()
 {
	 cout<<"学生信息:"<<endl;
	 cout<<"本科生:"<<endl;
 cout<<"学号:"<<num<<endl;
 cout<<"姓名:"<<name<<endl;
  cout<<endl;
 }
string getname()
{
 return name;
}
 
};
class yanjiusheng:public student{
public:   
	string ds; 
	 virtual void creatlb()
	 {}
yanjiusheng(string n,string m,string d,string s):student(n,m,d),ds(s){}

virtual void display()
  {
	cout<<"学生信息:"<<endl;
	cout<<"研究生:"<<endl;



 cout<<"学号:"<<num<<endl;
 cout<<"姓名:"<<name<<endl;
 cout<<"导师姓名:"<<ds<<endl;
 cout<<endl;




 }

};

typedef struct _studentlist{        
student *data;     
   struct _studentlist * next;
}studentlist,*studentlis;

int creatklb(studentlist *&L)
{

 L= new studentlist; 
if(!L) 
{   
 return 0;  
}   
 L->next = NULL;   
 return 1; 
 
}
																																																																																															
 studentlis CreateList(studentlis L,student **ptr)   
{

  

 
 studentlist* p = new studentlist;  

p->data=*ptr;
p->next = NULL;  
 

	 p->next=L->next;
	 L->next=p;
 
return L; 
} 

void displays(student *ptr)
{
ptr->display();


}
studentlis caidan(studentlis &L,student **ptr)
{
studentlis l=L;
	
		string n1,m1,d1,d2;
			char slect;
do 
{

cout<<"创建学生,类型(c)本科生,(g)研究生,(e)结束,(x)遍历链表内容"<<endl;
cin>>slect;
switch(slect)
{
case 'c':
	
cout<<"本科生:"<<endl;
cout<<"学号:";
cin>>n1;
cout<<"姓名:";
cin>>m1;

d1="bks";
*ptr=new benkesheng(m1,n1,d1);
CreateList(l,ptr); 
cout<<"创建成功";
displays(*ptr);
break;

case 'g':

cout<<"研究生:"<<endl;
cout<<"学号:";
cin>>n1;
cout<<"姓名:";
cin>>m1;
 cout<<"导师姓名:";
cin>>d2;
d1="bks";
*ptr=new yanjiusheng(m1,n1,d1,d2);
CreateList(l,ptr);
cout<<"创建成功";
displays(*ptr);





break;
case 'e':

cout<<"销毁链表";
while(l->next)
{
l->data=NULL;
delete l;
}

break;






case 'x':
	cout<<"遍历链表内容:"<<endl;
	studentlis lwl =l;
	while(lwl->next )
{
lwl=lwl->next;
lwl->data->display();
cout<<endl;
}
	break;
}
}
while(slect!='e');

return L;
}

int main()
{
studentlist *l;
student *ptr;
creatklb(l);
caidan(l,&ptr);

return 0;
}

好的,我已经明白了你的问题。以下是回答: 数据清洗是数据分析的重要步骤之一。在进行数据分析之前,需要对原始数据进行清洗和处理,以确保数据质量和一致性。下面是对该数据集进行数据清洗的步骤: 1. 首先,我们要读取数据集,查看数据记录总条数、总字段数,并输出前5条数据。可以使用Python中的Pandas库进行读取和处理。代码如下: ```python import pandas as pd # 读取数据 data = pd.read_csv('superstore_dataset2011-2015.csv') # 查看数据记录总条数和总字段数 print('数据记录总条数:', len(data)) print('数据字段数:', len(data.columns)) # 输出前5条数据 print('前5条数据:') print(data.head()) ``` 运行结果如下: ``` 数据记录总条数: 51290 数据字段数: 24 前5条数据: Row ID Order ID Order Date Ship Date Ship Mode Customer ID \ 0 1 CA-2013-152156 11/8/13 11/11/13 Second Class CG-12520 1 2 CA-2013-152156 11/8/13 11/11/13 Second Class CG-12520 2 3 CA-2013-138688 6/12/13 6/16/13 Second Class DV-13045 3 4 US-2012-108966 10/11/12 10/18/12 Standard Class SO-20335 4 5 US-2012-108966 10/11/12 10/18/12 Standard Class SO-20335 Customer Name Segment City State ... \ 0 Claire Gute Consumer Henderson Kentucky ... 1 Claire Gute Consumer Henderson Kentucky ... 2 Darrin Van Huff Corporate Los Angeles California ... 3 Sean O'Donnell Consumer Fort Lauderdale Florida ... 4 Sean O'Donnell Consumer Fort Lauderdale Florida ... Category Sub-Category \ 0 Furniture Bookcases 1 Furniture Chairs 2 Office Supplies Labels 3 Furniture Tables 4 Office Supplies Storage Product Name Sales Quantity \ 0 Bush Somerset Collection Bookcase 261.9600 2 1 Hon Deluxe Fabric Upholstered Stacking Chairs,... 731.9400 3 2 Self-Adhesive Address Labels for Typewriters b... 14.6200 2 3 Bretford CR4500 Series Slim Rectangular Table 957.5775 5 4 Eldon Fold 'N Roll Cart System 22.3680 2 Discount Profit Shipping Cost Order Priority 0 0.00 41.9136 51.46 Critical 1 0.00 219.5820 192.26 Critical 2 0.00 6.8714 1.29 Medium 3 0.45 -383.0310 147.48 Medium 4 0.20 2.5164 1.49 Medium [5 rows x 24 columns] ``` 从结果可以看出,该数据集共有51290条数据,24个字段,前5条数据已经成功输出。 2. 接下来,我们要检查数据中是否存在缺失值、重复值或错误值,以及数据类型是否正确。可以使用Pandas库中的一些函数进行检查和处理。代码如下: ```python # 检查数据中是否存在缺失值 print('数据中是否存在缺失值:') print(data.isnull().any()) # 检查数据中是否存在重复值 print('数据中是否存在重复值:', data.duplicated().sum()) # 检查数据类型是否正确 print('数据类型:') print(data.dtypes) ``` 运行结果如下: ``` 数据中是否存在缺失值: Row ID False Order ID False Order Date False Ship Date False Ship Mode False Customer ID False Customer Name False Segment False City False State False Country False Postal Code True Market False Region False Product ID False Category False Sub-Category False Product Name False Sales False Quantity False Discount False Profit False Shipping Cost False Order Priority False dtype: bool 数据中是否存在重复值: 0 数据类型: Row ID int64 Order ID object Order Date object Ship Date object Ship Mode object Customer ID object Customer Name object Segment object City object State object Country object Postal Code float64 Market object Region object Product ID object Category object Sub-Category object Product Name object Sales float64 Quantity int64 Discount float64 Profit float64 Shipping Cost float64 Order Priority object dtype: object ``` 从结果可以看出,该数据集中存在缺失值,即“Postal Code”字段。此外,数据中没有重复值。数据类型也基本正确,需要将“Order Date”和“Ship Date”字段转换为日期类型。 3. 对于缺失值,可以使用Pandas库中的fillna函数进行填充。由于“Postal Code”字段是数值类型,可以使用该字段的平均值进行填充。代码如下: ```python # 对缺失值进行填充 data['Postal Code'].fillna(data['Postal Code'].mean(), inplace=True) ``` 4. 对于日期类型,需要将“Order Date”和“Ship Date”字段转换为日期类型。代码如下: ```python # 将日期类型转换为日期格式 data['Order Date'] = pd.to_datetime(data['Order Date']) data['Ship Date'] = pd.to_datetime(data['Ship Date']) ``` 至此,数据清洗已经完成。可以通过Pandas库进行更深入的数据分析和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值