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

6Python的Pandas:数据读取与输出

Pandas是一个强大的Python数据分析库,提供了读取和输出数据的多种功能。以下是一些常见的数据读取与输出方法:

1. 读取CSV

读取数据

  1. 从CSV文件读取数据
import pandas as pd# 读取CSV文件
df = pd.read_csv('file_path.csv')
print(df.head())
  1. 从Excel文件读取数据
# 读取Excel文件
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1')
print(df.head())
  1. 从SQL数据库读取数据
import sqlite3# 连接到SQLite数据库
conn = sqlite3.connect('database.db')# 读取SQL查询结果
df = pd.read_sql_query("SELECT * FROM table_name", conn)
print(df.head())
  1. 从JSON文件读取数据
# 读取JSON文件
df = pd.read_json('file_path.json')
print(df.head())

输出数据

  1. 将数据写入CSV文件
# 写入CSV文件
df.to_csv('output_file.csv', index=False)
  1. 将数据写入Excel文件
# 写入Excel文件
df.to_excel('output_file.xlsx', index=False, sheet_name='Sheet1')
  1. 将数据写入SQL数据库
# 将DataFrame写入SQLite数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)
  1. 将数据写入JSON文件
# 写入JSON文件
df.to_json('output_file.json', orient='records', lines=True)

示例操作

以下是一个从CSV文件读取数据并将其写入Excel文件的示例:

import pandas as pd# 读取CSV文件
df = pd.read_csv('input_file.csv')# 数据处理(例如:查看前五行数据)
print(df.head())# 写入Excel文件
df.to_excel('output_file.xlsx', index=False)

列数据处理

  1. 选择列
# 选择指定的列
df_selected = df[['column1', 'column2']]
print(df_selected.head())
  1. 新增列
# 新增一列,值为两列相加
df['new_column'] = df['column1'] + df['column2']
print(df.head())
  1. 删除列
# 删除指定的列
df = df.drop(columns=['column1'])
print(df.head())

真假值转换

  1. 将布尔值转换为0和1
# 将布尔值转换为0和1
df['boolean_column'] = df['boolean_column'].astype(int)
print(df.head())
  1. 将0和1转换为布尔值
# 将0和1转换为布尔值
df['int_column'] = df['int_column'].astype(bool)
print(df.head())

跳过指定行

  1. 跳过CSV文件的前几行
# 跳过前两行
df = pd.read_csv('file_path.csv', skiprows=2)
print(df.head())

读取指定行

  1. 读取CSV文件中的特定行
# 读取第5行到第10行(注意,行索引从0开始)
df = pd.read_csv('file_path.csv', skiprows=lambda x: x not in range(5, 11))
print(df)

空值替换

  1. 用指定值替换空值
# 用0替换所有空值
df = df.fillna(0)
print(df.head())
  1. 用列的平均值替换空值
# 用列的平均值替换空值
df['column1'] = df['column1'].fillna(df['column1'].mean())
print(df.head())

示例操作

以下是一个综合示例,展示了如何进行这些操作:

import pandas as pd# 读取CSV文件,跳过前两行
df = pd.read_csv('file_path.csv', skiprows=2)# 选择指定的列
df_selected = df[['column1', 'column2']]# 新增一列,值为两列相加
df['new_column'] = df['column1'] + df['column2']# 将布尔值转换为0和1
df['boolean_column'] = df['boolean_column'].astype(int)# 用0替换所有空值
df = df.fillna(0)print(df.head())

这些操作可以帮助你高效地处理和转换数据,根据具体需求进行调整和组合。

2.读取Excel

Pandas可以方便地读取Excel文件并进行数据处理。以下是一些常见的操作和示例:

读取整个Excel文件

import pandas as pd# 读取整个Excel文件中的默认工作表
df = pd.read_excel('file_path.xlsx')
print(df.head())

读取指定工作表

# 读取指定的工作表
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1')
print(df.head())

读取多个工作表

# 读取多个工作表,将结果存储在字典中
dfs = pd.read_excel('file_path.xlsx', sheet_name=['Sheet1', 'Sheet2'])# 打印Sheet1的前几行
print(dfs['Sheet1'].head())# 打印Sheet2的前几行
print(dfs['Sheet2'].head())

读取所有工作表

# 读取所有工作表,将结果存储在字典中
dfs = pd.read_excel('file_path.xlsx', sheet_name=None)# 打印每个工作表的前几行
for sheet_name, df in dfs.items():print(f"Sheet: {sheet_name}")print(df.head())

跳过指定行

# 跳过前两行
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1', skiprows=2)
print(df.head())

读取指定行和列

# 读取第5到10行,指定列
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1', skiprows=4, nrows=6, usecols='A:C')
print(df)

空值处理

# 用指定值替换空值
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1')
df.fillna(0, inplace=True)
print(df.head())

示例操作

以下是一个综合示例,展示了如何读取Excel文件中的指定工作表、跳过行、读取特定行和列,并进行空值处理:

import pandas as pd# 读取指定的工作表,并跳过前两行
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1', skiprows=2)# 读取第5到10行,指定列
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1', skiprows=4, nrows=6, usecols='A:C')# 用0替换所有空值
df.fillna(0, inplace=True)print(df)

这些操作可以帮助你灵活地读取和处理Excel文件中的数据,根据需要进行调整和组合。

3.Pandas的输出

Pandas提供了多种将数据输出到不同格式文件的方法,包括CSV、Excel、JSON、SQL等。以下是一些常见的数据输出操作和示例:

输出到CSV文件

import pandas as pd# 创建示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 输出到CSV文件,不包含行索引
df.to_csv('output_file.csv', index=False)

输出到Excel文件

# 输出到Excel文件,不包含行索引
df.to_excel('output_file.xlsx', index=False, sheet_name='Sheet1')

输出到JSON文件

# 输出到JSON文件
df.to_json('output_file.json', orient='records', lines=True)

输出到SQL数据库

import sqlite3# 连接到SQLite数据库(如果数据库不存在,则会自动创建)
conn = sqlite3.connect('database.db')# 输出到SQL数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)

设置分隔符、编码和格式

CSV文件设置分隔符和编码
# 输出到CSV文件,设置分隔符为分号,编码为UTF-8
df.to_csv('output_file.csv', sep=';', encoding='utf-8', index=False)
Excel文件格式化输出
# 输出到Excel文件,设置列宽
with pd.ExcelWriter('output_file.xlsx', engine='xlsxwriter') as writer:df.to_excel(writer, sheet_name='Sheet1', index=False)# 获取工作表对象worksheet = writer.sheets['Sheet1']# 设置列宽worksheet.set_column('A:A', 20)worksheet.set_column('B:B', 10)

示例操作

以下是一个综合示例,展示了如何将数据输出到CSV、Excel、JSON和SQL文件:

import pandas as pd
import sqlite3# 创建示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 输出到CSV文件,不包含行索引
df.to_csv('output_file.csv', index=False)# 输出到Excel文件,不包含行索引,设置列宽
with pd.ExcelWriter('output_file.xlsx', engine='xlsxwriter') as writer:df.to_excel(writer, sheet_name='Sheet1', index=False)worksheet = writer.sheets['Sheet1']worksheet.set_column('A:A', 20)worksheet.set_column('B:B', 10)# 输出到JSON文件
df.to_json('output_file.json', orient='records', lines=True)# 连接到SQLite数据库
conn = sqlite3.connect('database.db')# 输出到SQL数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)

这些操作可以帮助你将Pandas DataFrame数据输出到多种格式文件,根据具体需求进行调整和组合。

相关文章:

6Python的Pandas:数据读取与输出

Pandas是一个强大的Python数据分析库,提供了读取和输出数据的多种功能。以下是一些常见的数据读取与输出方法: 1. 读取CSV 读取数据 从CSV文件读取数据 import pandas as pd# 读取CSV文件 df pd.read_csv(file_path.csv) print(df.head())从Excel文…...

ubuntu 网络 通讯学习笔记2

1.ubuntu 网络常用命令 在Ubuntu中,有许多网络相关的常用命令。以下是一些主要命令及其用途: ifconfig:此命令用于显示和配置网络接口信息。你可以使用它来查看IP地址、子网掩码、广播地址等。 例如:ifconfig 注意&#xff1a…...

深入理解JS中的事件委托

JavaScript中的事件委托是一种非常有用的事件处理模式,它允许我们利用事件模型的事件冒泡阶段来减少事件处理器的数量,提高网页性能。本文将介绍事件委托的概念、工作原理、优点以及如何在实际项目中应用事件委托。 1、事件模型 事件模型指在Web开发中,处理和管理事件(如…...

Camera Raw:首选项

Camera Raw 首选项 Preferences提供了丰富的配置选项,通过合理设置,可以显著提升图像处理的效率和效果。根据个人需求调整这些选项,有助于创建理想的工作环境和输出质量。 ◆ ◆ ◆ 打开 Camera Raw 首选项 方法一:在 Adobe Bri…...

HLS加密技术:保障流媒体内容安全的利器

随着网络视频内容的爆炸性增长,如何有效保护视频内容的版权和安全成为了一个亟待解决的问题。HLS(HTTP Live Streaming)加密技术作为一种先进的流媒体加密手段,凭借其高效性和安全性,在直播、点播等场景中得到了广泛应…...

捷配总结的SMT工厂安全防静电规则

SMT工厂须熟记的安全防静电规则! 安全对于我们非常重要,特别是我们这种SMT加工厂,通常我们所讲的安全是指人身安全。 但这里我们须树立一个较为全面的安全常识就是在强调人身安全的同时亦必须注意设备、产品的安全。 电气: 怎样预…...

UE4-初见虚幻引擎

一.创建自己的工程 1.启动 a.通过桌面双击图标来打开对应版本的虚幻引擎 b.通过EPIC启动器开启动虚幻引擎 2.选择或新建项目 ps:高版本虚幻编辑器可以打开低版本的虚幻项目,但是高版本虚幻的项目不可以由低版本的虚幻编辑器打开。 3. 选择要打开的项目 4.选择模版 选…...

基于Vue CLI 3构建Vue3项目(Vue2也可参考)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...

Midjourney 绘画提示词汇总:让你的 AI 绘画与众不同

在 AI 技术迅速发展的今天,AI 绘画已经成为了创意工作中的一大利器。Midjourney 作为其中的佼佼者,以其强大的绘画能力和高质量的输出受到了广大用户的喜爱。为了帮助你充分发挥 Midjourney 的潜力,我们整理了一些能够让 AI 绘画与众不同的提…...

React和Vue.js的相似性和差异性是什么?

React 和 Vue.js 都是流行的前端 JavaScript 框架,它们有一些相似性和差异性: 相似性: 组件化:React 和 Vue.js 都支持组件化开发,允许开发者将界面拆分为独立的组件,提高代码的复用性和可维护性。…...

Nginx 和 PHP(特别是使用 Swoole 扩展)的配置和调优

针对千万级用户的高并发应用,Nginx 和 PHP(特别是使用 Swoole 扩展)的配置和调优是至关重要的。 以下是详细的配置和调优建议: Nginx 配置和调优 工作进程数(worker_processes): 根据 CPU 核心…...

Kafka Producer发送消息流程之消息异步发送和同步发送

文章目录 1. 异步发送2. 同步发送 1. 异步发送 Kafka默认就是异步发送,在Main线程中的多条消息,没有严格的先后顺序,Sender发送后就继续下一条,异步接受结果。 public class KafkaProducerCallbackTest {public static void mai…...

Flutter 状态管理调研总结

一, 候选状态管理组件简介 0. flutter_hooks 一个 React 钩子在 Flutter 上的实现:Making Sense of React Hooks 钩子是一种用来管理 Widget 生命周期的新对象,以减少重复代码、增加组件间复用性,允许将视图逻辑提取到通用的用例中并重用&…...

入门C语言只需一个星期(星期二)

点击上方"蓝字"关注我们 01、算术运算符 int myNum = 100 + 50;int sum1 = 100 + 50; // 150 (100 + 50)int sum2 = sum1 + 250; // 400 (150 + 250)int sum3 = sum2 + sum2; // 800 (400 + 400) + 加 将两个值相加 x + y - 减 从另一个值中减去一个值 …...

切换node版本

一、在Linux上切换Node.js版本有多种实现方法: 1.使用nvm(Node Version Manager): 安装nvm:可以通过curl或wget来安装nvm,具体请参考nvm的官方文档。 安装不同版本的Node.js:使用nvm可以轻松…...

【常见开源库的二次开发】基于openssl的加密与解密——Base的编解码(二进制转ascll)(二)

目录: 目录: 一、 Base64概述和应用场景 1.1 概述 1.2 应用场景 二、Base16 2.1 Base16编码 2.2 Base16编解码 三、Base64 四、OpenSSL BIO接☐ 4.1 Filter BIOs: 4.2 Source/Sink BIOs: 4.3 应用场景: 4.4 具体使用&…...

ssrf复习(及ctfshow351-360)

1. SSRF 概述 服务器会根据用户提交的URL发送一个HTTP请求。使用用户指定的URL,Web应用可以获取图片或者文件资源等。典型的例子是百度识图功能。 如果没有对用户提交URL和远端服务器所返回的信息做合适的验证或过滤,就有可能存在“请求伪造"的缺陷…...

请求通过Spring Cloud Gateway 503

最近想处理一个通用的网关服务。 但是我在处理好所有配置的时候发现,网络请求过网关的时候,一直503,我所有的配置都没问题。 环境: JDK: 17 Spring Cloud: 2023.0.2 在 Spring Cloud Gateway 的早期版本中&#xff…...

C++代码_让室友坑我

引子 今天古文波在外地上C集训营,结果却被一起学习的室友坑了。啊,好气,我要报复室友。 所以,我写出了死亡代码。 如果你也想报复某些人,可以看下去。 代码构造: 头文件 想要使用一些函数,如…...

AG32 的MCU与FPGA的主频可以达到568MHz吗

Customers: AG32/ AGRV2K 这个芯片主频和定时器最高速度是多少?用户期望 CPLD计时器功能0.1ns以下。 AGM RE: CPLD做不到 0.1ns的速率,这个需要10G以上的时钟。 那AGRV2K最高多少MHz呢? 一般200MHZ比较容易实现。 进一步说明&#xff1…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM&#xff09…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...