玩转数据处理120题|Pandas版本

上传人:大米 文档编号:498855506 上传时间:2022-11-04 格式:DOCX 页数:29 大小:213.17KB
返回 下载 相关 举报
玩转数据处理120题|Pandas版本_第1页
第1页 / 共29页
玩转数据处理120题|Pandas版本_第2页
第2页 / 共29页
玩转数据处理120题|Pandas版本_第3页
第3页 / 共29页
玩转数据处理120题|Pandas版本_第4页
第4页 / 共29页
玩转数据处理120题|Pandas版本_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《玩转数据处理120题|Pandas版本》由会员分享,可在线阅读,更多相关《玩转数据处理120题|Pandas版本(29页珍藏版)》请在金锄头文库上搜索。

1、玩转数据处理120题| Pandas版本Pan das进阶修炼12 0题系列一共涵盖了数据处理、计算、可视化 等常用操作,希望通过12 0道精心挑选的习题吃透pan das。并且针对 部分习题给出了多种解法与注解,动手敲一遍代码一定会让你有所收 获!1创建DataFrame题目:将下面的字典创建为DataFrame data=grammer:Python,C,Java,GO,np.nan,SQL,PHP,Python,score:1,2,np.nan,4,5,6,7,10难度: 期望结果g rammer score0 Python 101 C2.02 Java NaN3 GO4 0斗R5.05

2、 SQL 6.05 PHP 7.07 Python 10.0Pytho n解法import numpy as np import pandas as pd df = pd.DataFrame(data)# 假如是直接创建df = pd.DataFrame(grammer:Python,C,Java,GO,np.nan,SQL,PHP,Python, score: 1,2,np.nan,4,5,6,7,10)注: 1-20题均基于该数据框给出 2数据提取题目:提取含有字符串卩yth on的行 难度:期望结果grammer score0 Python 1.07 Python 10.0Pyth on

3、 解法:# 1dfdfgrammer = Python# 2results = dfgrammer.str.contains(Python) results.fillna(value=False,inplace = True) dfresults3提取列名题目:输出df的所有列名难度:期望结果Index(grammer, score, dtype=object)Pytho n解法df.columns4修改列名题目:修改第二列列名为popularity难度:Python解法 df.rename(columns=score:popularity, inplace = True) 5字符统计题目:统

4、计grammer列中每种编程语言出现的次数 难度:Python解法dfgrammer.value_counts()6 缺失值处理题目:将空值用上下值的平均值填充难度: Pytho n 解法# pandas里有一个插值方法,就是计算缺失值上下两数的均值 dfpopularity=dfpopularity.fillna(dfpopularity.interpolate()7数据提取题目:提取popularity列中值大于3的行难度:“Python解法dfdfpopularity 38数据去重题目:按照grammer列进行去重难度:“Python解 法df.drop_duplicates(gramm

5、er)9数据计算题目:计算popularity列平均值难度:Python解 法dfpopularity.mean()# 4.7510格式转换题目:将grammer列转换为list难度:“Python解 法dfgrammer.to_list()# Python, C, Java, GO, nan, SQL, PHP, Python11数据保存题目:将DataFrame保存为EXCEL难度:Python 解法df.to_excel(filename.xlsx)12数据查看题目:查看数据行列数难度:Wython解法 df.shape# (8, 2)13数据提取题目:提取popularit y列值大于

6、3小于7的行难度: Pytho n 解法df(dfpopularity 3) & (dfpopularity 7)14位置处理题目:交换两列位置难度:Python解法 temp = dfpopularitydf.drop(labels=popularity, axis=1,inplace = True) df.insert(0, popularity, temp)15 数据提取题目:提取 popularity 列最大值所在行难度: Pytho n 解法dfdfpopularity = dfpopularity.max()16数据查看题目:查看最后5行数据难度:Python解法 df.tail(

7、)17数据修改题目:删除最后一行数据难度:Wython解法 df = df.drop(labels=df.shape0-1)18数据修改题目:添加一行数据Perl,6.6难度:Python解法 row = grammer:Perl,popularity:6.6df = df.append(row,ignore_index=True)19数据整理题目:对数据按照popularity列值的大小进行排序难 度:Python解法df.sort_values(popularity,inplace=True)20 字符统计题目:统计 grammer 列每个字符串的长度难度:Pytho n 解法 dfgra

8、mmer = dfgrammer.fillna(R) dflen_str = dfgrammer.map(lambda x: len(x)第二期:数据处理基础21数据读取题目:读取本地EXCEL数据难度:Python解法import pandas as pdimport numpy as npdf = pd.read_excel(rC:UserschenxDocumentsDataAnalysispandas120.xlsx)2150部分习题与该数据相关22数据查看题目:查看df数据前5行难度:期望输出creatTime education salary卒科 20k-35K本科 20k-40k

9、平限 20k-35k护科 13k-20k玄和 10k-20k0 2020-03-1&11:30:1 S1 2020-03-1610:5B:4S2 2020-03-1610:46:393 2020-03-1610145:444 2020-03-1B 10:20:41Pytho n解法df.head()23数据计算题目:将 salary 列数据转换为最大值与最小值的平均值难度:createTimeeducationsalary0200-03-16 11:30:18本科275(X112020-03-16 10:56:48本科3000022020-03-16 10:46:39不限2750032020-

10、03-16 10145:44本科1650042020-00-16 10:20:41本科15000期望输出Pytho n解法#方法一:apply +自定义函数def func(df):lst = dfsalary.split(-) smin = int(lst0.strip(k) smax = int(lst1.strip(k) dfsalary = int(smin + smax) / 2 * 1000) return dfdf = df.apply(func,axis=1)# 方法二:iterrows + 正贝9 import refor index,row in df.iterrows()

11、:nums = re.findall(d+,row2)df.ilocindex,2 = int(eval(f(nums0 + nums1) / 2 * 1000)24数据分组题目:将数据根据学历进行分组并计算平均薪资难度:期望 输出education salary不限 19600.000000大专 10000.000000本科 19361.344538硕士 20642.857143Pytho n解法df.groupby(education).mean()03-16本科2750003-16本科3000003-16不限2750003-16本科16600createTime education sa

12、lary-JL-工讨 4 f/nrurt25时间转换题目:将createTime列时间转换为月-日难度: 期望输出ce 斗 口Pytho n解法 for index,row in df.iterrows():df.ilocindex,0df.ilocindex,0.to_pydatetime().strftime(%m-%d)26数据查看题目:查看索引、数据类型和内存信息难度:期望输出 RangeIndex: 135 entries, 0 to 134 Data columns (total 4 columns): createTime 135 non-null object educatio

13、n 135 non-null object salary 135 non-null int64 categories 135 non-null category dtypes: category(1), int64(1), object(2) memory usage: 3.5+ KBPytho n解法 df.info()27数据查看 题目:查看数值型列的汇总统计难度:Python解法 df.describe()R解法 summary(df)28数据整理题目:新增一列根据salary将数据分为三组难度:输入期望 输出createTime education salary Gategories3

14、-16璋科275D0-03-16300003-16275D003-16本科16500*jaPytho n解法 bins = 0,5000, 20000, 50000 group_names = 低, 中, 高 dfcategories = pd.cut(dfsalary, bins,labels=group_names)29数据整理题目:按照salary列对数据降序排列难度:Python解法 df.sort_values(salary, ascending=False)30数据提取题目:取出第33行数据难度:Python解法 df.iloc3231数据计算题目:计算salary列的中位数难度:Python解法 np.median(dfsalary)# 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号