Pandas数据分析学习笔记(一)

Pandas数据分析课程常用操作笔记(更新中)

Import pandas as pd
Import numpy as np
  1. 读取文件:
df= pd.read_csv('data.csv',sep=";")
#参数sep可选择分隔符,默认为","
  1. 查看数据集属性和信息:
df.head(10)
#显示前10行,参数可变
df.tail(10)
#显示后10行,参数可变
df.iloc[np.r_[0:10, -10:0]]
#同时显示前10和后10行
df_m = df[df['column1'] == 'value1']
df_m = df.query('column1 == {}'.format('value1'))
#query函数筛选数据, 若为字符串需要为字符串加双引号
df.info()
#显示dataframe的属性,行数、列数、每列的非NA数等
df.describe()
#显示各列最大最小,平均,分位数等值
df.duplicated()
df.duplicated().sum()
#返回每行是否有重复值,用.sum()可以算出重复的总数
df['column1'].unique()
#返回该列不重复值的array,.unique()只用于series,若df[['column1']].unique()会报错, 等价于df.column1.unique()
df.column1.nunique()
#number of unique elements
df.isna().any()
#查看每列是否有NA值
df.isna().sum()
#查看每列NA值总数
df.shape[0]
#查看行数,也可以用len(df)
df.shape[1]
#查看列数
  1. 数据集操作
df.index.values.tolist()
#将行索引转化为列表
df.columns.values.tolist()
#将列索引转化为列表
df['column'].value_counts()
#查看某列各值的个数
df[df['column1'].str.contains('str')]
#过滤column1中包含str的所有行
df['column'].str.extract('(\d+)').astype(int)
#正则表达式提取数字(\d为0-9,\d+为所有数字)
df['column'].astype(int)
#转换数据类型为int
df.append(self, other, ignore_index=False, verify_integrity=False, sort=None)
#合并数据集
# ignore_index:默认值为False,如果为True则不使用index标签,可避免index重复
# verify_integrity :默认值为False,当创建的index相同时会抛出ValueError的异常
# sort:默认是None,该属性在pandas的0.23.0及以上的版本才存在。
pd.merge(df1, df2, how='outer',left_on='column1',right_on='column2')
#连接数据集
#how: 'inner','outer','left','right'.
#left_on:左边连接值,right_on:右边连接值 
df.rename(index={'index1':'new_index'},columns={'column1':'new_column'})
df.rename(columns= lambda x: x[:10]+'XXXX')
#重命名数据集col1, 若需要以相同规则重命名所有的列/行,可以用lambda函数
df.drop(index)
df.drop(['column1', 'column2'], axis=1)
#删除无效数据,默认删除行,删除列需要令axis=1
df.drop_duplicates()
#删除重复的行
df.groupby(['column1','column2'], as_index=False)['column3'].mean()
#将col1、col2作为分组显示col3的均值,其他统计参数同理。
#['column3']不写即显示所有列
df.groupby(['column1','column2'], as_index=False)['column3'].mean().sort_values(ascending=False)
#如果要排序可使用sort_values,ascending=False为降序

pd.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
#x: 输入,1维数组
#bins: int, sequence of scalars, or IntervalIndex;
#right: True包含右区间
#labels: 数组或布尔,False时返回bin的整数索引值
#duplicates:'raise' or 'drop', 边界值不唯一的时候drop掉或者raise ValueError
pd.sample(200,replace=True)
#取200个样本,replace=True为有放回抽样,False为无放回抽样
  1. 保存数据集
pd.to_csv('data_edited.csv', index=False)
#index=False 不保存index
  1. 可视化
df.plot(kind='bar')
#bar条形图,barh水平条形图,hist直方图,scatter散点图,pie饼图,box箱型图,line线图,density密度图
df.plot(kind='scatter', alpha=0.1)
#alpha透明度
df.hist('column1')
#画出column1对应的直方图,图形等于df[['column1']].plot(kind='bar'),细节有差异

你可能感兴趣的:(Pandas,学习笔记)