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

  • dataframe添加列 
  • 删除行与列
  • 去重
  • 修改列
  • 自定义函数

加载数据

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

dataframe添加列 

在后面追加


df['城市'] = '北京'
df

df['区县'] = ['朝阳区', '朝阳区', '西城区', '昌平区', '朝阳区','朝阳区', '朝阳区', '西城区', '昌平区', '朝阳区']
df

df['新价格'] = df['价格'] + 1000
df

添加列  恢复df为初始十列

先获取区域索引 在区域后面一列插入城市

area_index = df.columns.get_loc('区域')
print(area_index)df.insert(loc=area_index+1,column='区县',value=['朝阳区', '朝阳区', '西城区', '昌平区', '朝阳区','朝阳区', '朝阳区', '西城区', '昌平区', '朝阳区'])
print(df)

price_index = df.columns.get_loc('价格')
print(price_index)df.insert(loc=price_index+1,column="新价格",value=df['价格']+1000)
print(df)

删除行与列

删除默认删除行 不修改原始数据

源数据

copy_df = df.head().copy()
copy_df

删除索引为1 的这行数据  0 是按行删 不修改原始数据
new_df = copy_df.drop(labels=[1], axis=0, inplace=False)
new_df

删除索引为1和3的 这行数据 修改原始数据
copy_df  = df.head().copy()
new_df = copy_df.drop(labels=[1,3], axis=0, inplace=True)
copy_df

删除多列 修改原始数据
copy_df = df.head().copy()
new_df = copy_df.drop(labels=['区域','地址','户型'], axis=1, inplace=True)
print(new_df)
print("==========================================")
print(copy_df)

去重

dataframe去重


默认 对 所有列去重 keep为first  不影响原始数据
对 '户型', '朝向' 去重, 保留第一条, 不影响原始数据

copy_df = df.head().copy()new_df = copy_df.drop_duplicates(subset=['户型', '朝向'], keep='first', inplace=False)
print(new_df)
print("===========================================")
print(copy_df)

对 '户型', '朝向' 去重, 保留最后一条, 影响原始数据
copy_df = df.head().copy()new_df = copy_df.drop_duplicates(subset=['户型', '朝向'], keep='last', inplace=True)
print(new_df)
print("===========================================")
print(copy_df)

 对 '户型', '朝向' 去重, 删除所有重复数据, 影响原始数据
copy_df = df.head().copy()new_df = copy_df.drop_duplicates(subset=['户型', '朝向'], keep=False, inplace=True)
print(new_df)
print("===========================================")
print(copy_df)

Series去重

默认保留第一条 不修改原始数据

对 朝向 构成的 Series对象 去重, 保留最后一条, 不影响原始对象
copy_df = df.head().copy()
new_series = copy_df['朝向'].drop_duplicates(keep='last', inplace=False)
print(new_series)
print("===========================================")
print(copy_df['朝向'])

对朝向 构成的 Series对象 去重, 删除所有重复, 不影响原始对象
copy_df = df.head().copy()
new_series = copy_df['朝向'].drop_duplicates(keep=False, inplace=False)
print(new_series)
print("===========================================")
print(copy_df['朝向'])

对 朝向 构成的 Series对象 去重, 保留第一条, 影响原始对象
copy_df = df.head().copy()
new_series = copy_df['朝向'].drop_duplicates(keep='first', inplace=True)
print(new_series)
print("===========================================")
print(copy_df['朝向'])

修改列

加载数据

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35]}
df = pd.DataFrame(data)
df

第一行age列修改为30

df.loc[0, 'Age'] = 30
df

# 也可以使用条件赋值来修改部分值
# df['Name']=='Bob'
df.loc[df['Name']=='Bob', 'Age'] = 66
df

df['Name'].replace(to_replace='Alice', value='Alice_new', inplace=True)
df
#法二 
# df['Name'] = df['Name'].replace(to_replace='Alice', value='Alice_new', inplace=False)
# df

# 将 Age 列中小于 31 的值改为 29
df['Age'].where(df['Age']>=31, 29, inplace=True)
df

df['Age'].mask(df['Age']>=30, 66, inplace=True)
df

案例

import pandas as pd# 加载数据集 ../data/b_LJdata.csv
df = pd.read_csv('./data/b_LJdata.csv')
df
copy_df = df.head().copy()
print('============修改前===================')
print(copy_df)# copy_df.loc[0, '价格'] = 8000
# copy_df.iloc[0, 4] = 8000
price_index = df.columns.get_loc('价格')
copy_df.iloc[0, price_index] = 8000print('价格下标: ', price_index)print('============修改后===================')
print(copy_df)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149316.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2024年中国研究生数学建模竞赛B题 (WLAN组网吞吐量机理建模+GBDT+LSTM 进阶建模文章)

2024年中国研究生数学建模竞赛B题 (WLAN组网吞吐量机理建模GBDTLSTM 进阶建模文章) 全文请从 底部名片 处获取哦~ 问题重述和分析 问题重述 本题旨在基于实际测量的WLAN(无线局域网)数据,建立一个精确的系统吞吐量预测模型。具体而言&…

计算机毕业设计 校园志愿者管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

示例说明:分布式系统实战经验

在分布式系统中,实战经验是非常宝贵的,因为它涉及到系统的高可用性、数据一致性、性能优化等多个方面。以下是一些具体的实战经验举例: 1. 高可用性设计 案例: 在电商系统中,订单服务需要保证高可用性。为了防止单点故障&#x…

kettle发邮件:使用Kettle实现自动化发信?

kettle发邮件配置教程?Kettle如何实现邮件发送功能? Kettle,作为一款强大的开源ETL工具,不仅在数据转换和加载方面表现出色,还能通过其内置的功能实现自动化发邮件。AokSend将详细探讨如何使用Kettle发邮件&#xff0…

【LLM多模态】文生视频综述From Sora What We Can See: A Survey of Text-to-Video Generation

note 现在很多主流的文生视频应该还是Diffusion-based 基于扩散模型的方法这篇综述将现有研究按照三个维度进行分类:进化生成器(Evolutionary Generators)、卓越追求(Excellent Pursuit)、现实全景(Realis…

在IntelliJ IDEA中设置文件自动定位

当然,以下是一个整理成博客格式的内容,关于如何在IntelliJ IDEA中设置文件自动定位功能。 在IntelliJ IDEA中设置文件自动定位 背景 最近由于公司项目开发的需求,我从VSCode转到了IntelliJ IDEA。虽然IDEA提供了许多强大的功能,…

【机器学习】——支持向量机

文章目录 支持向量机(Support Vector Machine, SVM)概述SVM 的工作原理线性不可分数据:软间隔与核技巧SVM 的数学形式SVM 的优势SVM 的缺点SVM 的应用 支持向量机(Support Vector Machine, SVM)概述 支持向量机&#…

Linux基本命令总结(佛系更)

目录 前言 一、Linux的基本目录 目录: 前缀: 二、Linux基本命令 文件相关 1.pwd: 2.ls [option] [file]: 3.cd [xxx]: 4.mkdir [option] directory: 5.rmdir [option] directory: rm 6.touch file: 7.cp: 8.mv&…

0-1开发自己的obsidian plugin DAY 1

官网教程有点mismatch,而且从0-100跨度较大,📝记录一下自己的踩坑过程 首先,官网给的example里只有main.ts,需要自己编译成main.js 在视频教程(https://www.youtube.com/watch?v9lA-jaMNS0k)里…

同一网络下两台电脑IP一样吗?探究局域网内的IP分配机制

在日常生活和工作中,我们经常会在同一网络环境下使用多台电脑。这时,一个常见的问题就会浮现:同一网络下两台电脑IP一样吗?这个问题看似简单,但实际上涉及到局域网内的IP分配机制。本文将深入探讨这一问题,…

付费电表系统的通用功能和应用过程参考模型(上)

Generic functions and application process reference model for the Payment Metering System 付费电表系统的通用功能和应用过程参考模型 1. 参考模型 Reference model 1.1 在参考模型中的符号的说明 Legend of symbols used in the reference model 功能框 (function bo…

c++9月23日

1.My_string 头文件 #ifndef MY_STRINGHEAD_H #define MY_STRINGHEAD_H#include <iostream> #include <cstring> using namespace std;class My_string { private:char *ptr;//指向字符数组的指针int size;//字符数组的最大容量int len ;//当前字符串的长度 publ…

IMX6UL开发板中断实验(三)

在上一节我们编写完成了中断驱动文件和中断驱动头文件&#xff0c;那么这一讲我们将继续中断实验 下面就是GPIO的中断设置&#xff0c;第一步要设置中断GPIO的触发方式&#xff0c;首先我们先看到寄存器&#xff0c;一共有GPIOx_ICR1和ICR2&#xff0c; 图如上&#xff0c;ICR1…

【采集软件】小红书评论高级爬取工具

用python开发了一个爬虫采集软件&#xff0c;叫【爬小红书搜索评论软件】&#xff0c;支持2种模式的评论采集&#xff1a; 1. 根据关键词采集评论&#xff0c;爬取思路&#xff1a;笔记关键词->笔记链接->评论 2. 根据笔记链接采集评论&#xff0c;爬取思路&#xff1a;…

每日一练:翻转二叉树

226. 翻转二叉树 - 力扣&#xff08;LeetCode&#xff09; 一、题目要求 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff…

MATLAB Function模块用法案例

Simulink中的MATLAB Function模块是一个非常灵活的工具&#xff0c;允许用户直接在Simulink模型中嵌入MATLAB代码&#xff0c;以实现自定义的算法或功能 MATLAB Function模块的基本用法 添加模块&#xff1a; 在Simulink的模型窗口中&#xff0c;通过搜索“MATLAB Function”…

大数据新视界 --大数据大厂之 Reactjs 在大数据应用开发中的优势与实践

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

2024 年最新前端工程师 Vue3 框架详细教程(更新中)

vue3 前端框架概述 vue 3 是 Vue.js 的最新版本&#xff0c;是一个用于构建用户界面的渐进式 JavaScript 框架。和 vue 2 相比&#xff0c;vue 3 引入了组合式 API&#xff0c;使开发者可以通过函数组织代码逻辑&#xff0c;适合处理复杂功能。vue 3 在性能上也有显著提升&…

AI Agent智能应用从0到1定制开发Langchain+LLM全流程解决方案与落地实战

大模型微调实战&#xff1a;精通、指令微调、开源大模型微调、对齐与垂直领域应用29套AI全栈大模型项目实战&#xff0c;人工智能视频课程-多模态大模型&#xff0c;微调技术训练营&#xff0c;大模型多场景实战&#xff0c;AI图像处理&#xff0c;AI量化投资&#xff0c;OPenC…

使用Charles抓包Android App数据

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 抓包环境准备 1. 下载安装charles charles下载地址&#xff1a;https://www.charlesproxy.com/latest-release/download.do 2. SSL代理设置 3. http代理和…