楼主: 我是小趴菜
722 1

[数据挖掘工具] Pandas数据处理精简笔记 [推广有奖]

  • 0关注
  • 4粉丝

教授

35%

还不是VIP/贵宾

-

威望
0
论坛币
29650 个
通用积分
380.5350
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
7150 点
帖子
670
精华
0
在线时间
37 小时
注册时间
2022-8-30
最后登录
2023-4-4

楼主
我是小趴菜 发表于 2022-10-18 10:47:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

(win,grade为例表)

一、文本数据处理:


1.str.


2.常用:
len 字符长度
lower 转换成小写
upper 转换成大写
islower 判断是否小写
isupper 判断是否大写
find 查找
count 统计个数
strip 去除两边
split 分裂
replace 替换


3.替换:wine.商品名称.str.replace('ml',"ML")


4.查找:
contains 包含 : 判断字符串中是否包含某个自字符
startswith :判断是否以子串开始
endswith : 判断是否以子串结束


5.切片:
# slice, 切片某一部分
wine.商品名称.str.slice(0,3)


# slice_replace 对切片部分进行替换
wine.商品名称.str.slice_replace(0,3,'你好')


6.连接:
# cat 对所有值进行连接
grade.姓名.str.cat(sep=', ')


7.插入:
# join 在字符之间插入内容
grade.姓名.str.join(' ')


8.重复:
# 把每个元素重复 n 次
grade.姓名.str.repeat(n)


9.哑变量:
grade_new.血型.str.get_dummies()


二、缺失值处理:


1. 统计空值数量:

grade.isnull().sum()


2.#提取空值:
grade[ grade.姓名.isnull() ]


3.删除空值:
user_info.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

//axis 参数用于控制行或列,跟其他不一样的是,axis=0 (默认)表示操作行,axis=1 表示操作列。
how 参数可选的值为 any(默认) 或者 all。any 表示一行/列有任意元素为空时即丢弃,all 一行/列所有值都为空时才丢弃。
subset 参数表示删除时只考虑的索引或列名。
thresh参数的类型为整数,它的作用是,比如 thresh=3,会在一行/列中至少有 3 个非空值时将其保留。//


# subset设置, 删除的时候考虑哪一列(subset)
grade.dropna(subset=['姓名'])
grade.dropna(subset=['数学', '语文', '英语'])


# 当数学, 语文, 英语都为空的时候, 就会被删除
grade.dropna(subset=['数学', '语文', '英语'], how='all')


# 数学语文英语这三列中只要有两个值, 就会保留
grade.dropna(thresh=2, subset=['数学', '语文', '英语'])


# 如果这一列中样本超过一半都有值存在则保留, 否则删除
grade.dropna(axis=1,thresh= grade.shape[0]/2 )


4.空值填充:
grade.fillna(0)


# 对多列使用中位数填充
for i in ['语文', '数学', '英语']:
grade.fillna(grade.median(),inplace=True)


# 采用上一个有效值填充
grade.fillna(method='ffill')


# 采用下一个有效值填充
grade.fillna(method='bfill')


# 采用线性差值填充
grade.interpolate()


三、数据分组:


1.步骤:
分割: 将 DataFrame按照指定的键分割成若干组
应用: 对每个组应用函数, 通常是累计,转换或过滤函数
组合: 将每一组的结果合并成一个输出组


2.分组:
# 统计不同学历的平均产品评分
df.groupby('学历')['产品评分'].mean()


# 同时统计多个统计值
test.agg(['max','min','mean'])
test.agg({"测试成绩":['mean','std','var'], "产品评分":['max','min','mean']})


# 自定义统计值
def f(x):
"""
实现的功能是提取出第二大的值
"""
return x.sort_values('测试成绩', ascending=False)['测试成绩'].iloc[1]

test.apply(f)



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:pandas panda 数据处理 Das interpolate

沙发
Ivanjustin 在职认证  发表于 2022-10-21 15:12:23
点赞支持 感谢分享

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-6 04:55