python pandas astype_pandas 数据类型转换

本文介绍了在使用Pandas处理数据时如何进行数据类型转换,特别是利用astype()函数将数据从object、int64、float64、datetime64等类型转换。通过实例展示了如何处理包含货币符号、百分比和日期格式的数据,以及如何通过自定义函数进行数据清洗和转换。同时,文章提到了其他转换方法,如to_numeric()和to_datetime(),并强调了数据类型检查和清洗在数据分析中的重要性。
摘要由CSDN通过智能技术生成

数据处理过程的数据类型

当利用pandas进行数据处理的时候,经常会遇到数据类型的问题,当拿到数据的时候,首先需要确定拿到的是正确类型的数据,一般通过数据类型的转化,这篇文章就介绍pandas里面的数据类型(data types也就是常用的dtyps),以及pandas与numpy之间的数据对应关系。

主要介绍object,int64,float64,datetime64,bool等几种类型,category与timedelta两种类型会单独的在其他文章中进行介绍。当然本文中也会涉及简单的介绍。

数据类型的问题一般都是出了问题之后才会发现的,所以有了一些经验之后就会拿到数据之后,就直接看数据类型,是否与自己想要处理的数据格式一致,这样可以从一开始避免一些尴尬的问题出现。那么我们以一个简单的例子,利用jupyter notebook进行一个数据类型的介绍。

####按照惯例导入两个常用的数据处理的包,numpy与pandas

import numpy as np

import pandas as pd

# 从csv文件读取数据,数据表格中只有5行,里面包含了float,string,int三种数据python类型,也就是分别对应的pandas的float64,object,int64

# csv文件中共有六列,第一列是表头,其余是数据。

df = pd.read_csv("sales_data_types.csv")

print(df)

Customer Number Customer Name 2016 2017 \

0 10002 Quest Industries $125,000.00 $162,500.00

1 552278 Smith Plumbing $920,000.00 $1,012,000.00

2 23477 ACME Industrial $50,000.00 $62,500.00

3 24900 Brekke LTD $350,000.00 $490,000.00

4 651029 Harbor Co $15,000.00 $12,750.00

Percent Growth Jan Units Month Day Year Active

0 30.00% 500 1 10 2015 Y

1 10.00% 700 6 15 2014 Y

2 25.00% 125 3 29 2016 Y

3 4.00% 75 10 27 2015 Y

4 -15.00% Closed 2 2 2014 N

df.dtypes

Customer Number int64

Customer Name object

2016 object

2017 object

Percent Growth object

Jan Units object

Month int64

Day int64

Year int64

Active object

dtype: object

# 假如想得到2016年与2017年的数据总和,可以尝试,但并不是我们需要的答案,因为这两列中的数据类型是object,执行该操作之后,得到是一个更加长的字符串,

# 当然我们可以通过df.info() 来获得关于数据框的更多的详细信息,

df['2016']+df['2017']

0 $125,000.00 $162,500.00

1 $920,000.00 $1,012,000.00

2 $50,000.00 $62,500.00

3 $350,000.00 $490,000.00

4 $15,000.00 $12,750.00

dtype: object

df.info()

# Customer Number 列是float64,然而应该是int64

# 2016 2017两列的数据是object,并不是float64或者int64格式

# Percent以及Jan Units 也是objects而不是数字格式

# Month,Day以及Year应该转化为datetime64[ns]格式

# Active 列应该是布尔值

# 如果不做数据清洗,很难进行下一步的数据分析,为了进行数据格式的转化,pandas里面有三种比较常用的方法

# 1. astype()强制转化数据类型

# 2. 通过创建自定义的函数进行数据转化

# 3. pandas提供的to_nueric()以及to_datetime()

RangeIndex: 5 entries, 0 to 4

Data columns (total 10 columns):

Customer Number 5 non-null int64

Customer Name 5 non-null object

2016 5 non-null object

2017 5 non-null object

Percent Growth 5 non-null object

Jan Units 5 non-null object

Month 5 non-null int64

Day 5 non-null int64

Year 5 non-null int64

Active 5 non-null object

dtype

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值