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

一周学会Pandas2 Python数据处理与分析-Pandas2数据类型转换操作

锋哥原创的Pandas2 Python数据处理与分析 视频教程:  

2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

Pandas 提供了灵活的方法来处理数据类型转换,以下是常见操作及代码示例:

1. 查看数据类型

import pandas as pddf = pd.DataFrame({'A': ['1', '2', '3'],'B': [4, 5, 6],'C': ['2025-01-01', '2025-02-01', '2025-03-01']
})print(df.dtypes)
# 输出:
# A    object
# B     int64
# C    object

2. 使用 astype() 转换类型

基本转换:

df['A'] = df['A'].astype(int)    # 转换为整数
df['B'] = df['B'].astype(float)  # 转换为浮点数

运行结果:

3. 使用 pd.to_numeric() 处理数值转换

to_numeric()方法详解:

pandas.to_numeric(arg, errors='raise', downcast=None
)

参数说明:

参数类型说明
argSeries, list, 1D数组需要转换的输入数据
errors{'ignore', 'raise', 'coerce'}, 默认 'raise'控制无效值的处理方式: - 'raise': 遇到非数值字符报错(默认) - 'coerce': 将无效值转为 NaN - 'ignore': 保留原值,不转换
downcast{'integer', 'signed', 'unsigned', 'float'}, 默认 None降低内存占用: - 'integer'/'signed'/'unsigned': 寻找最小整数类型(如 int8, int16) - 'float': 寻找最小浮点类型(如 float32

使用 errors='coerce' 避免转换失败导致程序中断。

import pandas as pd
s = pd.Series(['1', '2', 'apple', '4'])
s_numeric = pd.to_numeric(s, errors='coerce')  # 无效值转为 NaN
# 输出: [1.0, 2.0, NaN, 4.0]s_ignore = pd.to_numeric(s, errors='ignore')   # 保留原数据

to_numeric函数中的downcast参数用于控制数值类型的转换,可以减少内存使用量,同时保持数据的准确性。

import pandas as pds = pd.Series([1.0, 2.0, 3.0])
s = pd.to_numeric(s, downcast='integer')  # 转换为最小整数类型 (int8/int16/...)

4. 日期时间转换to_datetime()

import pandas as pddf = pd.DataFrame({'A': ['1', '2', '3'],'B': [4, 5, 6],'C': ['2025-01-01', '2025-02-01', 'ccc']
})
df['C'] = pd.to_datetime(df['C'],errors='coerce')  # 转换为 datetime 类型

5. 处理缺失值与类型推断

填充缺失值后转换:

import pandas as pddf = pd.DataFrame({'A': ['1', '2', '3'],'B': [4, 5, 6],'C': ['2025-01-01', '2025-02-01', 'ccc']
})
df['D'] = ['10', None, '30']
df['D'] = df['D'].fillna(0).astype(int)  # 填充 NaN 后转为整数

Pandas可以用以下方法智能地推断各列的数据类型,会返回一个按推断修改后的DataFrame。

import pandas as pddf = pd.DataFrame({'A': ['1', '2', '3'],'B': [4, 5, 6]
})
df = df.convert_dtypes()  # 自动推断更合适的数据类型

相关文章:

  • 邂逅蓝耘元生代:ComfyUI 工作流与服务器虚拟化的诗意交织
  • 【coze】手册小助手(提示词、知识库、交互、发布)
  • 黑马点评day04(分布式锁-setnx)
  • AI数据分析中的伪需求场景:现状、挑战与突破路径
  • RAG_Techniques:探索GitHub热门RAG技术开源项目
  • MySQL的内置函数与复杂查询
  • HarmonyOS 5.0 分布式数据协同与跨设备同步​​
  • 数据分析汇报七步法:用结构化思维驱动决策
  • 大数据应用开发和项目实战-电商双11美妆数据分析
  • 第八章,STP(生成树协议)
  • 【IP101】图像特征提取技术:从传统方法到深度学习的完整指南
  • K8S PV 与 PVC 快速开始、入门实战
  • 【安全】端口保护技术--端口敲门和单包授权
  • Web3 应用中常见的数据安全风险及防护措施
  • C++多态详解
  • 【Linux】进程地址空间
  • 免费轻量化办公pdf修改软件 一键格式转换基础修改到高级加密
  • keil+vscode+腾讯ai助手
  • 【笔记】【B站课程 pytorch】梯度下降模型
  • 深入理解 mapper-locations
  • 呼和浩特65户业主被一房两卖,十年诉讼却难胜
  • 科技日报刊文批院士专家“赶场式”跑会:助长浮躁之气功利之心
  • 100%关税!特朗普要让美国电影100%美国制造
  • 多地政府机关食堂迎来大客流,重庆荣昌区委书记给厨师们鼓劲
  • 中国海警局回应日本民用飞机侵闯我钓鱼岛领空:依法警告驱离
  • 泽连斯基拒绝普京72小时停火提议,坚持应尽快实现30天停火