python科学计算——pandas

主要是为了方便自己查找

1引入自定义module

import sys
#被引用模块所在的路径
sys.path.append("D:/Code/PythonCode/project02/recsys_core-master")   
#然后再引用模块 
import common.common as common #自定义的数据库连接

2reset_index()

数据清洗时,会将带空值的行删除,此时DataFrame或Series类型的数据不再是连续的索引,可以使用reset_index()重置索引。

DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=‘’) 

level控制了具体要还原的那个等级的索引
在获得新的index,原来的index变成数据列,保留下来。
不想保留原来的index,使用参数 drop=True,默认 False。
inplace表示对DataFrame是否重新赋值。

3df去除索引保存到csv

df.to_csv("result_test_csv\submission.csv", index=False) # index=None去除索引(等同于index=False),index=True保留索引

4 df转string

root = df['用户名'].values.astype(str)[0]
root

5pd.read_csv/pd.read_table参数详解

在这里插入图片描述

6分组

在这里插入图片描述

7drop和dropna的区别

dropna(self, axis=0, how=any, thresh=None, subset=None, inplace=False)

axis=0、index,删除空值所在行,index表示删除哪一行,默认为行
axis=1、columns,删除空值所在列,columns表示删除哪些列。
how:选择删除的模式,有any和all两种。
any:只要存在空值即删除所在行列,默认为any。default
all:所在行或列如果全是空值,则删除
thresh:指定当一行或一列存在多少非空值时,保留该行或该列
subset:传入一个列表,指定相应的列名,如果指定列内有空值,则删除所在行,可以和how搭配。
inplace:执行操作后,将返回值赋值给df。default=“False”

DataFrame.drop(self, labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise)

labels:按照标签删除对应的行或列,接受单个标签或是一个列表。
level:针对多级标签。多级标签计算时,从0开始。
errors:如果传入的标签不存在,会报错,KeyError,errors可以忽略报错。可选择raise和ignore,default=raise

删除为0的行

df = df.replace(0, np.nan)# 把0替换成nan
df = df.dropna(how='all', axis=0)# 删除所有为nan的行

sort_values()按值排序

对dataframe按某一列的值进行排序,或者按某一行的值进行排序。具体的参数设置如下:

参数

DataFrame.sort_values(by,axis = 0,ascending = True,inplace = False,kind =’ quicksort ',na_position =‘last’ )

#参数说明

by: str或str的列表,如果axis=0或axis=‘index’,那么by=‘列名’;如果axis=1或axis=‘columns’,那么by=‘行名’

axis: {0或’index’;1或’columns’} 默认为0,即纵向排序,如果为1,则为横向排序

ascending: 布尔型,默认为True,即升序

inplace: 布尔型,是否用排序后的数据代替现有数据

kind: 排序算法, {‘quicksort’,‘mergesort’,‘heapsort’},默认’quicksort’

na_position: {‘first’,‘last’},默认’last’ ,即将缺失值放在最后。

总结:

之前对于按行和按列一直都很难记,也就是axis=0或者axis=1这个。这个可以这样理解,axis=0表示行需要发生变动,需要排序,axis=1表示数据的列的位置要发生变动,这样好像就好记了。

get_dummies()

数据预处理,独热编码等,好用
将data中的每一列扩充为-------》每一列的类别分别一列,是则为1,否则为0

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False)
  • data : array-like, Series, or DataFrame
    输入的数据
  • prefix : string, list of strings, or dict of strings, default None
    get_dummies转换后,列名的前缀
  • columns : list-like, default None
    指定需要实现类别转换的列名
  • dummy_na : bool, default False
    增加一列表示空缺值,如果False就忽略空缺值
  • drop_first : bool, default False
    获得k中的k-1个类别值,去除第一个
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weightOneMillion

感谢看官们的供粮~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值