当前位置: 首页 > news >正文

Pandas -----------------------基础知识(四)

自定义函数

Series

加载数据

import pandas as pd
df = pd.DataFrame({'Age': [20, 25, 30, 35, 40]})
df

# 目标: 让 Age 列 的每个元素 + num1 + num2
def add_nums(x,num1,num2):return x + num1 + num2
df['Age'].apply(add_nums,num1 =2,num2 =3)
法二 df['Age'].apply(lambda x ,num1 ,num2 : x+num1+num2 , num1 =2,num2 =3)

# 目标: 输出 偶数

加载数据

df = pd.DataFrame({'vals': [15, 20, 33, 40, 50]})

def oushu(x):return x %2 == 0df[df['vals'].apply(oushu)]
法二
df[df['vals'].apply(lambda x : x %2 == 0)]

案例

加载数据

import pandas as pd# 加载数据
df = pd.read_csv('./data/b_LJdata.csv')copy_df = df.head().copy()
copy_df
如果区域 是 天通苑租房 就改成 昌平区, 否则改成其他区
法一
def change_area(x):if x == '天通苑租房':return '昌平区'else: return '其他区'
copy_df['区域']=copy_df['区域'].apply(change_area)
copy_df法二
copy_df = df.head().copy()
def change_area(x,arg1,arg2):if x == '天通苑租房':return arg1else: return arg2
copy_df['区域'] =copy_df['区域'].apply(change_area, arg1 ='昌平区',arg2 ='其他区')
copy_df法三
copy_df = df.head().copy()copy_df['区域'] = copy_df['区域'].apply(lambda x,arg1,arg2:arg1 if x=='天通苑租房' else arg2 ,args=('昌平区','其他区'))
copy_df

 df

axis=0  表示 列处理  
axis=1  表示 行处理
# 目标: 获取每一列的和
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df
法一
def sum_col(df):return df.sum(axis=0)
re = df.apply(sum_col)
re法二
re = df.apply(lambda df: df.sum(), axis=0)
re

# 目标1: 链家将 天通苑租房 提高 2000 块 (行处理)
def change_price(df_obj):if df_obj['区域'] == '天通苑租房':df_obj['价格'] += 2000return df_objcopy_df = copy_df.apply(change_price,axis=1)
copy_df

# 目标2: 包租公将所有房租 涨 1000 块 (列处理)
def change_price_2(df_obj):if df_obj._name  == '价格':df_obj += 1000return df_objcopy_df = copy_df.apply(change_price_2,axis=0)        
copy_df

单元格自定义

 加载数据

import pandas as pd# 创建一个示例数据框
data = {'Col1': [10, 20, 30],'Col2': [40, 50, 60],'Col3': [70, 80, 90]}
df = pd.DataFrame(data)
df
法一:
def fn(x):return x * 3df = df.applymap(fn)df法二:
df = df.applymap(lambda df:df*3)
df

案例

# 目标: 只要值是 '2室1厅' 就改成 '3室2厅'(函数版)

加载数据

import pandas as pd# 加载数据
df = pd.read_csv('./data/b_LJdata.csv')copy_df = df.head().copy()
copy_df

法一:
def fn(x):if x == '2室1厅':return '3室2厅'else: return x
copy_df = copy_df.applymap(fn)
copy_df法二:
copy_df = df.head().copy()
copy_df = copy_df.applymap(lambda x:'3室2厅' if x == '2室1厅' else x)
copy_df

http://www.lryc.cn/news/447755.html

相关文章:

  • 鼎阳加油-IOC关键技术问题的解决记
  • 【HarmonyOS】TaskPool非阻塞UI
  • 关于使用/bin/sh -c 用于Dockerfile的Entrypoint的问题
  • JS---获取浏览器可视窗口的尺寸
  • 对抗攻击方法详解:梯度攻击、转移攻击与模型集成攻击
  • GPU并行效率问题——通过MPS提升GPU计算收益
  • patch 命令:补丁的应用
  • 仓颉编程语言4,遇到BUG求助
  • SpringIOCDI
  • 单细胞Seruat和h5ad数据格式互换(R与python)方法学习和整理
  • 分布式难题-三座大山NPC
  • 两个方法教你设置Excel密码,防止修改和复制Excel表格内容
  • Java解析Excel文件
  • Require:基于雪花算法完成一个局部随机,全局离散没有热点切唯一的数值Id生成器。
  • libevent - Macro function
  • 408算法题leetcode--第17天
  • 机器人顶刊IEEE T-RO发布无人机动态环境高效表征成果:基于粒子的动态环境连续占有地图
  • spring-boot web + vue
  • HDFS分布式文件系统01-HDFS架构与SHELL操作
  • Go语言流程控制
  • 无人机在救灾方面的应用!
  • 面试知识点总结篇一
  • 【计算机网络 - 基础问题】每日 3 题(二十五)
  • 【第十八章:Sentosa_DSML社区版-机器学习之协同过滤】
  • TDOA方法求二维坐标的MATLAB代码演示与讲解
  • 基于微信的原创音乐小程序的设计与实现+ssm论文源码调试讲解
  • 基于大数据技术的颈椎病预防交流与数据分析及可视化系统
  • Spring MVC中实现一个文件上传和下载功能
  • Webpack 介绍
  • 在Linux实时监控某个应用是否运行,未运行,执行运行命令