栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Pandas

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pandas

总览:

1. 数据的读取与写入

2. 基本数据结构

3. 常用的基本函数及操作

4. 排序

细节:

1. 数据的读取与写入

读取为df
df = pd.read_csv('data/table.csv')
df_txt = pd.read_table('data/table.txt') #可设置sep分隔符参数
df_excel = pd.read_excel('data/table.xlsx')

写出
df.to_csv('data/new_table.csv')
df.to_excel('data/new_table2.xlsx', sheet_name='Sheet1')

2. 数据结构

Series:

创建一个Series
s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'],name='这是一个Series',dtype='float64')

访问series的属性
s.values
s.name
s.index
s.dtype

取出一个元素
s['a']

调用Series的一个方法
s.mean()
Dataframe

创建一个df
df = pd.Dataframe({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]}, index=list('一二三四五'))

取出一列为Series
df['col1']

修改行列名字
df.rename(index={'一':'one'},columns={'col1':'new_col1'})

调用属性
df.index
df.columns
df.values
df.shape

调用方法
df.mean()

列的删除
df.drop(index='五',columns='col1') #设置inplace=True后会直接在原Dataframe中改动
del df['col1']
df.pop('col1') # pop方法直接在原来的Dataframe上操作,且返回被删除的列,与python中的pop函数类似

列的添加
df1['B']=list('abc')
df1.assign(C=pd.Series(list('def'))) # assign方法不会对原Dataframe做修改

列的选择
df.select_dtypes(include=['number']).head()
df.select_dtypes(include=['float']).head()

Series转换成df
s.to_frame()

df转置
s.to_frame().T

3. 常用函数

# 数据探索阶段的一些常用函数

df.head()
df.head(3)
df.tail()

df['Physics'].nunique()
df['Physics'].unique()
df['Physics'].count()
df['Physics'].value_counts()

df.info()
df.describe()
df.describe(percentiles=[.05, .25, .75, .95])
df['Physics'].describe() # 非数值型的列一样可以使用这个函数

df['Math'].idxmax()
df['Math'].idxmin()

df['Math'].nlargest(3)
df['Math'].nsmallest(3)

df['Math'].clip(33,80).head() # 对这一列进行区间选择

df['Math'].mad() # mad()求的是某一列上的数值与平均值之间差值的绝对值的平均值,也就是平均绝对距离差 mean average distance

df['Address'].replace(['street_1','street_2'],['one','two']).head() # 对特定的值进行替换
df.replace({'Address':{'street_1':'one','street_2':'two'}}).head()

df['Math'].apply(lambda x:str(x)+'!').head() #可以使用lambda表达式,也可以使用函数
df.apply(lambda x:x.apply(lambda x:str(x)+'!')).head() # 默认axis=0下可以迭代每一个列操作

4. 排序

排序的基本操作:

索引排序
df.set_index('Math').head()
df.set_index('Math').sort_index().head()

值排序
df.sort_values(by='Class').head()
df.sort_values(by=['Address','Height']).head()

Ref: https://github.com/yeayee/joyful-pandas 很棒的pandas教程,强烈推荐大家star这个项目,作者读过很多Pandas的英文原著。前期主要是依据这个教程做一个cheat sheet, 后续会在此基础上添加更多其他书籍以及教程里面的常用函数以及代码技巧。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/338985.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号