pandas中哪个方法可以实现基本数据统计分析,pandas数据分析实战 (超详细)
本文主要是对工作中常用的13项熊猫技能进行总结和整理,以便更方便高效地实现数据分析。有兴趣的朋友可以跟边肖学习一下。
00-1010 1.计算变量的缺失率。2.获取分组中具有最大值的行。3.将多列合并成一行。4.删除包含特定字符串的行。5.在组内排序。6.选择特定类型的列。7.将字符串转换成数值。8.优化数据帧的内存使用。9.根据最大类别过滤数据帧。10.将字符串分成多列。11.将串行列表转换成数据帧。
目录
df=pd.read_csv(泰坦尼克_火车. csv )
定义缺失_校准(df):
Df :数据集
返回:每个变量的缺失率
missing_series=df.isnull()。sum()/df.shape[0]
缺失_df=pd。DataFrame(缺少_系列)。重置索引()
missing _ df=missing _ df . rename(columns={ index : col ,
0:missing_pct})
missing _ df=missing _ df . sort _ values( missing _ pct ,ascending=False)。reset_index(drop=True)
返回missing_df
缺少校准(df)
如果需要计算样本的缺失率分布,只需添加参数axis=1即可。
1.计算变量缺失率
有两种类型的组:重复值和非重复值。没有重复的值。
df=pd。DataFrame({Sp:[a , b , c , d , e , f], Mt:[s1 , s1 , s2 , s2 , s3], Value:[1,2,3,4,5,6], Count:[3,2,5,10,10,6]})
df
df.iloc[df.groupby([Mt])。应用(lambda x: x[计数]。idxmax())]
先按Mt列分组,然后使用idxmax函数从分组后的数据框中获取计数值最大的列,再使用iloc位置索引获取行。有重复的值。
df[ rank ]=df . group by( ID )[ score ]。rank(method=min ,升序=False)。astype(np.int64)
df[df[rank]==1][[ID , class]]
在ID被分组之后,等级函数被应用于分数。如果得分相同,则给予相同的排名,然后将排名为1的数据取出。
2.获取分组里最大值所在的行方法
df=pd。DataFrame({id_part:[a , b , c , d], pred:[0.1,0.2,0.3,0.4], pred_class:[女人,男人,猫,狗], v_id:[d1 , d2 , d3 , d1]})
df.groupby([v_id])。agg({pred_class: [,。join], pred: lambda x: list(x),
id_part: first})。重置索引()
3.多列合并为一行
df=pd。DataFrame({a:[1,2,3,4], b:[s1 , exp_s2 , s3 , exps4], c:[5,6,7,8], d:[3,2,5,10]})
df[df[ b ]. str . contains( exp )]
an">
5.组内排序
df = pd.DataFrame([[A,1],[A,3],[A,2],[B,5],[B,9]], columns = [name,score])
介绍两种高效地组内排序的方法。
df.sort_values([name,score], ascending = [True,False])
6.选择特定类型的列
drinks = pd.read_csv(data/drinks.csv)
7.字符串转换为数值
df = pd.DataFrame({列1:[1.1,2.2,3.3],
用这种方式转换第三列会出错,因为这列里包含一个代表 0 的下划线,pandas 无法自动判断这个下划线。为了解决这个问题,可以使用 to_numeric() 函数来处理第三列,让 pandas 把任意无效输入转为 NaN。
df = df.apply(pd.to_numeric, errors=coerce).fillna(0)
8.优化 DataFrame 对内存的占用
方法一:只读取切实所需的列,使用usecols参数
cols = [beer_servings,continent]
方法二:把包含类别型数据的 object 列转换为 Category 数据类型,通过指定 dtype 参数实现。
dtypes ={continent:category}
9.根据最大的类别筛选 DataFrame
movies = pd.read_csv(data/imdb_1000.csv)
10.把字符串分割为多列
df = pd.DataFrame({姓名:[张 三,李 四,王 五],
11.把 Series 里的列表转换为 DataFrame
df = pd.DataFrame({列1:[a,b,c],列2:[[10,20], [20,30], [30,40]]})
12.用多个函数聚合
orders = pd.read_csv(data/chipotle.tsv, sep=t)
13.分组聚合
import pandas as pd
通过字典或Series进行分组
people = pd.DataFrame(np.random.randn(5, 5),
到此这篇关于Pandas提高数据分析效率的13个技巧汇总的文章就介绍到这了,更多相关Pandas数据分析技巧内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。