Pandas_C1_数据文件存取以及数据探索cheat sheet

总览:

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, 后续会在此基础上添加更多其他书籍以及教程里面的常用函数以及代码技巧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值