Python数据分析主要用到numpy、pandas等库,虽然简单,但是没事多复习一下,可以减少使用时搜索查询的时间。
np.ndarray, pd.Series和pd.DataFrame的属性和方法
np.array的属性和方法见https://docs.scipy.org/doc/numpy/reference/arrays.ndarray.htmldocs.scipy.org
pd.Series的属性和方法见pandas.Series - pandas 0.25.3 documentationpandas.pydata.org
pd.DataFrame的属性和方法见pandas.DataFrame - pandas 0.25.3 documentationpandas.pydata.org
DataFrame的统计
DataFrame按照特定列排序
>>> df = pd.DataFrame({'col_1':['a','b','a','b'], 'col_2':['c','c','d','d'], 'col_3':[1, 2, 3, 4]})
>>> df
col_1 col_2 col_3
0 a c 1
1 b c 2
2 a d 3
3 b d 4
>>> df.sort_values(by=['col_1','col_3'])
col_1 col_2 col_3
0 a c 1
2 a d 3
1 b c 2
3 b d 4
注意,df.sort_values()之后的index还是没变,使用iloc切片是按照排序,使用loc切片是按照index的值,需要注意和排序不一样。
>>> df.sort_values(by=['col_1','col_3'], ignore_index=False).iloc[2,:]
col_1 b
col_2 c
col_3 2
Name: 1, dtype: object
>>> df.sort_values(by=['col_1','col_3'], ignore_index=False).loc[2,:]
col_1 a
col_2 d
col_3 3
Name: 2, dtype: object
可以设置sort_values的ignore_index=True,这样返回的DataFrame的index就是重制了的。也可以使用df = df.reset_index(drop=True)来重置index。
DataFrame的groupby方法
Pandas的groupby方法可以根据一个或多个键拆分pandas对象,分组计算需要的值,比如计数、均值、标准差等,也可以使用apply和自定义函数。
>>> df = pd.DataFrame({'col_1':['a','b','a','b'], 'col_2':['c','c','d','d'], 'col_3':[1, 2, 3, 4]})
>>> df
col_1 col_2 col_3
0 a c 1
1 b c 2
2 a d 3
3 b d 4
>>> df.groupby('col_1').mean() # 针对col_1中不同值分别求均值
col_3
col_1
a 2
b 3
>>> df.groupby('