Coder Social home page Coder Social logo

hands-on-data-analysis's People

Contributors

andongblue avatar hua03 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hands-on-data-analysis's Issues

第二章项目集合-第二章:第一节数据清洗及特征处理.ipynb部分答案错误

1.df[df['Age']==None]

df[df['Age']==None]=0
df.head(3)

以上代码无法筛选出NaN值
2.df[df['Age'].isnull()]

df[df['Age'].isnull()] = 0 # 还好
df.head(3)

以上代码可以筛选出NaN值,但是df[df['Age'].isnull()] = 0会将NaN值所在行全部置0,使得结果有误,且后面的重复值相关代码使用的也是这一行代码生成的数据
3.df[df['Age'] == np.nan]

df[df['Age'] == np.nan] = 0
df.head()

以上代码中,np.nan不可以与任何数进行比较。使用np.isnan()进行修复

关于2.3.1任务1中参考答案的疑惑

问题:

2.3.1任务1中(4)将连续变量Age按10% 30% 50% 70% 90%五个年龄段,并用分类变量12345表示,在参考答案中若设置结尾比例为0.9,则新加入的Age_bin即分类标签列会出现空值

此处提供2种思路:

  1. [0,0.1,0.3,0.5,0.7,0.9]改为[0,0.1,0.3,0.5,0.7,0.9,1],分组改为6组,即labels = range(1,7);
  2. 改为[0,0.1,0.3,0.5,0.7,1.0],分组仍为5组

第二章第一节

在任务二:对缺失值进行处理 中,参考答案给出的
df[[df['Age']==np.nan]=0,实际上不能将缺失值替换为0。思考以及回答中给出None无法找到缺失值是因为数据类型的原因,所以比较的时候最好用np.nan。但是我去goole之后,得到的结果是由于np.nan是不可比较的,所以即使数据类型相同,甚至是np.nan=np.nan,最后得到的结果也一定是False,所以不应该用”==”的方法来判断空值。可以替换为np.isnan。

第二章第三节数据重构2任务7

2.4.7:任务七:得出不同年龄的总的存活人数,然后找出存活人数的最高的年龄,最后计算存活人数最高的存活率(存活人数/总人数)

任务描述与答案个人认为不够符合,如存活人数的最高的年龄,答案实际为存活人数最多的年龄,存活人数最高的存活率实际为存货人数最高的年龄段的人数/总存活人数

1. 存活人数计算与总人数计算
可以使用 data['Survived'].value_counts()(data为读取的result.csv文件)
或者使用
data['Survived'].count()
data['Survived'].sum()

2. 找出存活人数的最高的年龄
对存活人数根据年龄做一个从大到小的排序,第一个即为年龄最大的存活人数
data[(data['Survived'].values==1)].sort_values(by='Age',ascending=False)
或者直接给出最大存活人数的年龄

data_survived = data[(data['Survived'].values==1)]
data_survived['Age'].max()

3. 找出不同年龄的存活人数

survived_age = data['Survived'].groupby(data['Age']).sum()
survived_age.head()

4. 找出存活人数最多的年龄
survived_age[survived_age.values==survived_age.max()]

5. 计算各个年龄段的存活率

# 不同年龄段的存活人数
survived_age = data['Survived'].groupby(data['Age']).sum()
survived_age
# 不同年龄段的总人数
age_count = data['Survived'].groupby(data['Age']).count()
age_count
# 各个年龄段的存活率
survived_percent = survived_age / age_count * 1.00
survived_percent.head()
# 总存活率
data['Survived'].sum() / data['Survived'].count()

第二章第三节数据重构2

思考题所给的答案与题目描述不符。
【思考】从任务二到任务三中,这些运算可以通过agg()函数来同时计算。并且可以使用rename函数修改列名。你可以按照提示写出这个过程吗?
任务二为:计算泰坦尼克号男性与女性的平均票价。
任务三为:统计泰坦尼克号中男女的存活人数。
给出的答案为:

text.groupby('Sex').agg({'Fare': 'mean', 'Pclass': 'count'}).rename(columns=
                            {'Fare': 'mean_fare', 'Pclass': 'count_pclass'})

我认为答案应为:

text.groupby('Sex').agg({'Fare':'mean','Survived':'sum'}).rename(columns=
                            {'Fare': 'fare_mean', 'Survived': 'survived_sum'})

第二章第一节数据清洗及特征处理

for循环,numpy.map转换对文本变量进行转换,构造映射时,.nunique()函数里的参数dropna应该是False
for feat in ['Cabin', 'Ticket']:
label_dict = dict(zip(df[feat].unique(), range(df[feat].nunique(dropna=False))))
df[feat + "_labelEncode"] = df[feat].map(label_dict)

不然的话,'Cabin'的C148这里会返回一个NaN值

关于泰坦尼克数据集表标签——SibSp中文表达的一点小错误 - 第一章第一节

hands-on-data-analysis/第一单元项目集合/第一章:第一节数据载入及初步观察.ipynb中,1.1.4 任务四里将SibSp标签的中文写成了“堂兄弟/妹个数”,而在Kaggle数据集的官方解释中,SibSp是Sibling and Spouse的意思,应该是“亲兄弟姐妹、继兄弟姐妹以及配偶”。Kaggle里的截图:
image
参考:https://www.kaggle.com/competitions/titanic/data

第一章:数据载入及初步观察

1.1.3 任务三 :每1000行为一个数据模块,逐块读取

数据一共不超过900行,任务设置为每100行为一个数据模块打印出来才能看出区别吧

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.