介绍 <强>小技巧5:如何将分类中出现次数较少的值归为其他人呢?
这篇文章给大家分享的是有关大熊猫数据分析实用小技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
<强>小技巧1:强> <>强如何使用地图对某些列做特征工程? 强>
先生成数据:
d =, {“gender": [“male",,“female",,“male",“female"],“color": [“red",,“green",,“blue",“green"],“age":[25日,30日,15日,32)=}df pd.DataFrame (d) df
在,<代码>性别> 代码列上,使用地图方法,快速完成如下映射:
d =, {“male": 0,,“female":, 1} df (“gender2"),=, df (“gender") . map (d)
<强>小技巧2:使用替换和正则清洗数据强>
熊猫的强项在于数据分析,自然就少不了数据清洗。
一个快速清洗数据的小技巧,在某列上使用替代方法和正则,快速完成值的清洗。
源数据:
d =, {“customer": [“A",,“B",,“C",,“D"],“sales": [1100,“950.5 rmb",,“400美元”,,“,“1250.75美元)} df =, pd.DataFrame (d) df
打印结果:
customer 销售 0,A 11001, B 950.5元 2,C 4003美元,D
1250.75美元看到销售列的值,有整型,浮点型+元后变为字符串型,还有美元+整型,美元+浮点型。
我们的目标:清洗掉,元<代码> 代码>,<代码> 代码>美元符号,转化这一列为浮点型。
一行代码搞定:(点击代码区域,向右滑动,查看完整代码)
df (“sales"),=, df (“sales") .replace(“(美元、人民币),,,,,,regex =,真的),\ .astype (“float")
使用正则替换,将要替换的字符放到列表中,<代码>(美元、人民币)> 代码,替换为空字符,即<代码>““> 代码;
最后使用,<代码> astype> 代码转为浮动
打印结果:
customer sales0 A 1100.001, B 950.502, C 400.003, D 1250.75
如果不放心,再检查下值的类型:
df (“sales")苹果(类型)
打印结果:
0, & lt; class & # 39;浮动# 39;在1,& lt; class & # 39;浮动# 39;在2,& lt; class & # 39;浮动# 39;在3,& lt; class & # 39;浮动# 39;在
【python学习交流群】
<强>小技巧3:使用融化如何对数据透视分析? 强>
构造一个DataFrame:
D =, {\“district_code":, (12345,, 56789,, 101112, 131415],“apple":, (5.2, 2.4, 4.2, 3.6),“banana":, (3.5, 1.9, 4.0, 2.3),“orange":, (8.0, 7.5, 6.4, 3.9]} df =, pd.DataFrame (d) df
打印结果:
district_code apple banana orange0123455.23.58.01567892.41.97.521011124.24.06.431314153.62.33.9
5.2表示12345区域的苹果价格,并且苹果,香蕉,橘子,这三列都是一种水果,那么如何把这三列合并为一列?
使用pd.melt
具体参数取值,根据此例去推敲:
df =df.melt (\ 时间=id_vars “district_code", 时间=var_name “fruit_name", 时间=value_name “price") df
打印结果:
district_code fruit_name price012345 apple 5.2156789, apple 2.42101112, apple 4.23131415, apple 3.6412345, banana 3.5556789, banana 1.96101112, banana 4.07131415, banana 2.3812345, orange 8.0956789, orange 7.510101112, orange 6.411131415, orange 3.9
以上就是长DataFrame,对应的原DataFrame是宽df。
<强>小技巧4:已知年和dayofyear,怎么转datetime吗?强>
原DataFrame
d =, {\“year":, (2019,, 2019,, 2020],“day_of_year":, (350,, 365,, 1]=}df pd.DataFrame (d) df
打印结果:
<>之前,year day_of_year 0201935012019365220201转datetime的小技巧
步骤1:创建整数
df (“int_number"),=df (“year") * 1000, +, df (“day_of_year")
打印df结果:
year day_of_year int_number 0201935020193501201936520193652202012020001
步骤2:to_datetime
df [“date"]=pd.to_datetime (df (“int_number") format =,“Y % % j")
注意“Y % % j"中转化格式j
打印结果:
<>之前,year day_of_year int_number 日期 0201935020193502019-12-161201936520193652019-12-3122020120200012020-01-01