r语言 删除NaN r语言 删除特定行_python读取的数据怎么变成数据框数据


前言:

这是关于张敬信老师@张敬信的专栏R&Python数据科学中的文章:玩转数据处理120题(R语言tidyverse版本)的个人自学笔记。敬信老师是我本科期间的恩师之一,非常感谢他提供的学习资源。
题目和主要代码均为敬信老师的原文内容,除此之外的注解为个人补充,如有错误,感激指正。
原来打算把敬信老师的120题在一篇文章中汇总出来,可是第一次在知乎上写长文,我发现在网页上写太容易出现乱码了,时不时就一长串乱码,真的害怕码了半天的字就没了。于是写到第50题就赶紧保存,然后另起一篇。不知道这是浏览器的原因还是知乎自己的原因,希望有人能不吝赐教。


#0(准备):需要的包


install


#1(创建数据):创建数据框df

敬信老师:


df


#2(筛选行):提取含有字符串python的行

敬信老师:


df


敬信老师在这里用的是filter函数(筛选函数),允许对数据集取子集,第一个参数是数据框的名字(此处由于通过管道函数给定数据框为df),之后的参数是用于过滤数据框的表达式。

#3(查看列名):输出df的所有列名

敬信老师:


names


#4(修改列名):修改第二列列名为popularity

敬信老师:


df


#5(统计频数):统计grammer列中每一种编程语言出现的次数

敬信老师:


df


#6(缺失值处理):将空值用上下值的平均值填充

敬信老师:


df


敬信老师在这里用的是mutate函数,关于mutate函数补充如下:


# 删除grammer列的数据,即将null值赋予列


#7(筛选行):提取popularity列中值大于3的行

敬信老师:


df


#8(数据去重):按grammer列进行去重

敬信老师:


df


#9(数据计算):计算popularity列平均值

敬信老师:


df


#10(格式转换):将grammer列转换为序列

敬信老师:


df


#11(数据保存):将数据框保存为Excel

敬信老师:


writexl


#12(数据查看):查看数据的行数列数

敬信老师:


dim


#13(筛选行):提取popularity列值大于3小于7的行

敬信老师:


df


#14(调整列位置):交互两列的位置

敬信老师:


df


#15(筛选行):提取popularity列最大值所在的行

敬信老师:


df


#16(查看数据):查看最后几行数据

敬信老师:


tail


#17(修改数据):删除最后一行数据

敬信老师:


df


敬信老师在这里用的是slice函数,关于slice函数补充如下:


# 如果选择某一特定行数据,例如选取第三行:


#18(修改数据):添加一行数据:"Perl", 6

敬信老师:


newrow


#19(数据整理):对数据按popularity列值从到大到小排序

敬信老师:


df


敬信老师在这里用的是arrange函数(排序函数),关于arrange函数补充如下:


# 对数据按popularity列值从到小到大排序


#20(字符统计):统计grammer列每个字符串的长度

敬信老师:


df



Excel数据:https://pan.baidu.com/s/1-J-wGj1_5-kaByvyhDGOHA 提取码:42yk

#21(读取数据):读取本地Excel数据

敬信老师:


df


#22(查看数据):查看df数据的前几行(后几行)

敬信老师:


head


#23(数据计算):将salary列数据转换为最大值与最小值的平均值

敬信老师:


df


#24(分组汇总):根据学历分组,并计算平均薪资

敬信老师:


df


敬信老师在这里用的是summarise函数(聚合函数),关于summarise函数补充如下:


# 创建新的数据框data frame,命名为salary,包含有group,salary_avg,salary_max,salary_min


#25(时间转换):将createTime列转换为"月-日"

敬信老师:


library


#26(查看数据):查看数据结构信息

敬信老师:


df


#27(查看数据):查看数据汇总信息

敬信老师:


summary


#28(修改列):新增一列将salary离散化为三水平值

敬信老师:


df


敬信老师在这里用的是case_when函数,允许定义多个if_else()语句,等效于SQL中CASE WHEN 语句。

#29(数据整理):按salary列对数据降序排列

敬信老师:


df


#30(筛选行):提取第33行数据

敬信老师:


df


#31(数据计算):计算salary列的中位数

敬信老师:


median


#32(数据可视化):绘制salary列的频率分布直方图

敬信老师:


df


#33(数据可视化):绘制salary的频率密度曲线图

敬信老师:


df


#34(数据删除):删除列class

敬信老师:


df


#35(数据操作):将df的第1列与第2列合并为新的一列

敬信老师:


df


敬信老师在这里用的是unite函数,关于unite函数的补充如下:


# "newcol"为合并列的新命名,1:2为合并1、2列,sep = " "为合并中间间隔空格


#36(数据操作):将education列与第salary列合并为新的一列

敬信老师:


df


#37(数据计算):计算salary最大值与最小值之差

敬信老师:


max


#38(数据操作):将第一行与最后一行拼接

敬信老师:


bind_rows


#39(数据操作):将第8行添加到末尾

敬信老师:


bind_rows


#40(查看数据):查看每一列的数据类型

敬信老师:


df


#41(数据操作):将createTime列设置为行索引

敬信老师:


df


#42(数据创建):生成一个和df长度相同的随机数数据框

敬信老师:


df1


#43(数据连接):将上面生成的数据框与df按列合并

敬信老师:


df


#44(修改列):生成新列new为salary列减去随机数列

敬信老师:


df


#45(检查缺失值):检查数据中是否含有任何缺失值

敬信老师:


anyNA


#46(类型转换):将rnums列的类型转换为浮点数

敬信老师:


df


#47(数据汇总):计算salary列大于10000的次数

敬信老师:


df


#48(统计频数):查看每种学历出现的次数

敬信老师:


df


#49(数据汇总):查看education列共有几种学历

敬信老师:


df


#50(筛选行):提取salary与new列之和大于60000的最后3行

敬信老师:


df



参考资料:

1.张敬信:玩转数据处理120题之P1-P20(R语言tidyverse版本)

2.张敬信:玩转数据处理120题之P21-P50(R语言tidyverse版本)

3. molearner:dplyr 数据操作 列操作(select / mutate)

4.小橙子:数据整理—dplyr包(summarise系列)

5.王诗翔:【r<-数据分析】使用dplyr(1):介绍与filter操作

6.张丹:R语言时间序列基础库zoo

7.张丹:R语言数据科学新类型tibble

8.g863402758:R语言数据类型转化