目录
01_Getting_&_Knowing_Your_Data
01_Getting_&_Knowing_Your_Data
1、读取csv文件
pd.read_csv(file_path,step='\t')
2、数据集行列信息
df.shape # 行数、列数
df.shape[0] or len(df) #行数
df.shape[1] #列数
df.index #索引信息
df.columns #列名称
df['column_dtype'] #某列类型
df.info #数据集基本信息:列名、非空行数、类型
df.head(10) #前10行
df.tail(10) #后10行
3、排序
df.sort_values(column,ascending=False) #df按照column降序排列
df.sort_values(column,ascending=False).head(1) #取df最大的一行
df.groupby('column1').sum().sort_values('column2',ascending=False).head(1) #df按c1分组、求和,然后按照c2降序排序,取最大一行
4、某列值求和、求平均
df['c1'].sum() #求和
df.c1.mean() #求平均
ps :选取一列的两种方式
5、转换一列数据类型
#str =>float
str_to_float = lambda x : float(x[1:-1]) #利用切片删除第一个字符
df['columns'].apply(str_to_float) # 利用apply 转换df列
6、查看列中有哪些不同值、每个值有多少重复值
df.column.value_counts() #column的不同的值,每种值有多少个
df.column.value_counts().count() #column列有几个不同的值
7、选取行
df.iloc[18] #df 第19行数据,索引从0开始
df.loc['column_name'] #按照行名称选取行
8、数据集的摘要
df.describe() #数值列的信息
df.describe(include='all') #所有列的信息
9、选取多列
df[['c1','c2']] #选取 c1列和c2列
df.loc[:,'c1':'c2'] #选取c1到c2列
10、删除一列
del df['c1'] #删除 c1列
02_Filtering_&_Sorting
1、删除某列重复数据
data=data.drop_duplicates(column,keep='first',inplace=False)
#删除column列的重复值,可以是列表即列的组合
#keep='first'表示保留第一次出现的重复行,是默认值
#inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本
2、根据某列列的值筛选df的行
df[(df.c1 == 'xxx') & (df.c2 > 10)] #过滤出:c1列为字符串'xxx' 并且 c2 > 10 的行
3、某列排序 vs df按照某列排序
df['c1'].sort_values() #选取某列,然后排序
df.sort_values(by=['c1','c2'],ascending=False) #df按照c1、c2排序
4、筛选某列以字母'G'开头的行
df[df.column.str.startswich('G')]
#Series.str.startswith(pat, na=nan)查看元素是否以…开头
#参数: pat : 字符串 na : 布尔值
#返回: 序列Series/向量array
5、选取前7列
df.iloc[:,0:7]
6、选取c1列值为'a','b','c' 的c1、c2列
df.loc[df.c1.isin(['a', 'b', 'c']), ['c1','c2']]
7、选取3-7行、3-6列
df.iloc[3:7,3:6]
8、选取某列不包含字符串’xxx‘的行
df[ df.column != 'xxx']
9、选取索引为’a‘和'b'的行
df.loc[['a','b']]
10、生成一个从15000到73000的随机整数series,大小为398
owners = np.random.randint(15000,high=73001,size=398,dtype='l')
03_Groupby
1、根据c1分组,