Pandas使用方法不定期收集整理

1.透视表的使用
Pandas透视表(pivot_table)详解

table = pd.pivot_table(df,index=["Manager","Status"],columns=["Product"],values=["Quantity","Price"],
               aggfunc={"Quantity":len,"Price":[np.sum,np.mean]},fill_value=0)

在这里插入图片描述
和groupby的区别:
pivot_table()方法是指定相应的列分别作为行标签和列标签,并指定相应的列作为值,然后重新生成一个新的DataFrame对象,这样的好处是使得数据更加的直观和容易分析,俗称数据透视;而groupby()方法是指定相应的列进行分组,把这列中具有相同值的行分为同一组,这个过程称为分组,返回一个groupby对象,一般的,分组之后会伴有聚合运算,即对每组进行需要的聚合运算(比如求和求积等)。因此,pivot_table()方法是为了让数据重新排列组合,使其更直观,数据透视;而groupby()方法则是对数据进行分组聚合运算;

关于columns的理解:
我认为pivot_table中一个令人困惑的地方是“columns(列)”和“values(值)”的使用。记住,变量“columns(列)”是可选的,它提供一种额外的方法来分割你所关心的实际值。然而,聚合函数aggfunc最后是被应用到了变量“values”中你所列举的项目上。(用白话来说,就是说columns所针对的列名,其可能有多个值,例如上面链接中的columns取product,而product包括CPU、Memory、Software等多个值,因此当设定了columns后,value就需要对product中的各个出现的值进行分别的统计,因此对不同的值,price会有对应的一列存在)


2.pandas中关于set_index() 和 reset_index() 的用法
set_index和reset_index
前者是将一列设定为序号,后者是将分组后的表还原(一般用于groupby统计之后的还原)


3.DataFrame列名的修改
修改列名
pandas 修改 DataFrame 列名


4.drop_duplicates()去重方法
Pandas之drop_duplicates():去除重复项


5.数据根据条件进行筛选操作
Pandas 筛选数据


6.如何快速查找并统计pandas数据框中每一列有多少缺失值(nan)
df.isnull().sum()


7.用pandas处理大型CSV文件(读取指定行数、列,或采用chunk_size)
[1]用pandas处理大型CSV文件
[2]你的数据根本不够大,别老扯什么Hadoop了

import pandas as pd

f = open('E:/学习相关/Python/数据样例/用户侧数据/test数据.csv')
reader = pd.read_csv(f, sep=',', iterator=True)
loop = True
chunkSize = 100000
chunks = []
while loop:
    try:
        chunk = reader.get_chunk(chunkSize)
        chunks.append(chunk)
    except StopIteration:
        loop = False
        print("Iteration is stopped.")
df = pd.concat(chunks, ignore_index=True)
print(df)

8.DataFrame的索引
DataFrame中loc、iloc、ix的区别
区别:就是说loc是根据具体名称索引的,iloc是根据序号索引的,而ix则是两者都可以实现;


9.pandas条件组合筛选和按范围筛选(isin())


10.pycharm实现批量重命名
点击你要改的单词,右键refactor ->rename


11.详解pandas库的pd.merge函数
on、how


12.pandas 缺失值与空值处理


13.在Dataframe中的列中使用NaT过滤所有行(实际就是筛出所有该列为NaT的行)


14.记录一个耗时一天的bug。。。
单个值减去一列值,除去这一列的第一个值外,其他都是NAN。。也就是说,直接相减是没有预期中的广播效果的。。
要实现这一效果,需要如下操作:

action=pd.read_csv(path + 'Actions_table.csv')
a = pd.to_datetime('2018-04-02 23:59:59')  #单个值
b = pd.to_dateframe(action.action_time)    #一列值
c = b.apply(lambda x:a-x)

追加:原来是windows下抽风了。。linux机器上就没有问题。。这样分析的话,应该是windows下txt文件读取后的编码方式有问题。


15.分批读取以及处理大文件
数据处理:1 用pandas处理大型csv文件 2 使用Pandas分块处理大文件 3 分块读取

pandas.read_csv——分块读取大文件

利用pandas向一个csv文件追加写入数据


16.合并数据集
Pandas合并数据集(merge和concat)


17.pandas.DataFrame.sample函数抽样划分Pascal voc数据 训练集验证集测试集


18.如何对数据集随机抽样?

DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)

注:n是要抽取的行数,frac是抽取的比列,replace:是否为有放回抽样,random_state就是给定的随机种子,axis是选择抽取数据的行还是列,axis=0的时是抽取行,axis=1的时是抽取列。


19.关于groupby操作,本质上是分组,所以没有增加额外空间


20.Python读取pkl文件

import pickle as pic

读取pkl文件数据
file = open('train_ucs_fea' + out_name + str(file_temp) + '.pkl', 'rb')
data = pic.load(file)
file.close()

数据写入到pkl文件
file = open('uc_realtime_fea' + out_name + '.pkl','wb')
pic.dump(result,file)
file.close()

21.指标
在这里插入图片描述


22.【集成学习】lightgbm使用案例


23.lightgbm模型存取
模型存放

model_lgb.save_model('model_name.txt')         #model_lgb为训练出来的模型

模型取用

import lightgbm as lgb
model_use=lgb.Booster(model_file='model_name.txt')
model_use.predict()

23.where函数的用法
pandas where函数用法


24.ceil函数的用法
np.ceil的用法


25.python中数据集划分函数StratifiedShuffleSplit的使用
分层抽样


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值