Python_Pandas学习笔记04_查看或修改DataFrame或者Series中各字段的数据类型

将目标和计划写出来,时常拿出来看一眼。

文章目录

  • 前言
    •   1. 概述
    •   2. 版本
      •    2.1 山东青岛,2021年4月5日,Version 1
  • 一、查看pandas的Series或Dataframe数据结构中各列的数据类型
  • 二、修改pandas的Series或Dataframe数据结构中各列的数据类型
    •  1. Pandas的Series.astype(dtype) 方法
    •  2. DataFrame.apply() 方法修改各列的数据类型。
  • 参考资料


前言

  1. 概述

  查看或者修改Pandas中Series结构和DataFrame结构中各个字段(每一列)的数据类型

  2. 版本

   2.1 山东青岛,2021年4月5日,Version 1


一、查看pandas的Series或Dataframe数据结构中各列的数据类型

  通过df.dtypes或者series.dtypes可以查看python中pandas的DataFrame或者Series两种数据结构中各列的数据类型。
代码如下:

'''
1. 查看Python的DataFrame的数据类型
'''
# 包的导入
import pandas as pd
# 创建测试数据
series_test = pd.Series([1,2,3])
print('series_test的各列数据类型如下:')
print(series_test.dtypes)
print('///')
df_test = pd.DataFrame({
     
    'A': [1, 2, 3],
    'B': [4.1, 5.2, 6.3],
    'C': ["7", "8", "9"]})
print('df_test的内容如下:')
print(df_test)
print('df_test的各列主要数据类型如下:')
print(df_test.dtypes)

运行结果如下:

int64
///
df_test的内容如下:
   A    B  C
0  1  4.1  7
1  2  5.2  8
2  3  6.3  9
df_test的各列主要数据类型如下:
A      int64
B    float64
C     object
dtype: object

二、修改pandas的Series或Dataframe数据结构中各列的数据类型

 1. Pandas的Series.astype(dtype) 方法

  运用Pandas的Series.astype(dtype) 方法可以将 Pandas 的列转换为指定的 dtype 类型。
代码如下:

'''
1. 修改Python的DataFrame的数据类型

2. 山东青岛  2021年4月5日
'''
# 创建用于测试DataFrame
df_test = pd.DataFrame({
     
    'A': [1, 2, 3],
    'B': [4.1, 5.2, 6.3],
    'C': ["7", "8", "9"]})
print('转换前df_test的各列主要数据类型如下:')
print(df_test.dtypes)
# 将A这1列转换为str
df_test['A'] = df_test['A'].astype(str)
print('转换后df_test的各列主要数据类型如下:')
print(df_test.dtypes)

运行结果如下:

转换前df_test的各列主要数据类型如下:
A      int64
B    float64
C     object
dtype: object
转换后df_test的各列主要数据类型如下:
A     object
B    float64
C     object
dtype: object
  • 需要注意的是astype() 方法不会就地修改 DataFrame 数据,因此我们需要将返回的 Pandas Series 分配给特定的 DataFrame 列

 2. DataFrame.apply() 方法修改各列的数据类型。

  DataFrame.apply() 方法将函数 func 应用于每一列,这里的函数可以是lambda函数。因此可以借助此方法实现DataFrame中每一列数据类型的修改。
代码如下:

'''
1. 修改Python的DataFrame的数据类型

2. 山东青岛  2021年4月5日
'''
# 创建用于测试DataFrame
df_test = pd.DataFrame({
     
    'A': [1, 2, 3],
    'B': [4.1, 5.2, 6.3],
    'C': ["7", "8", "9"]})
print('转换前df_test的各列主要数据类型如下:')
print(df_test.dtypes)
# 将A这1列转换为str
df_test['B'] = df_test['B'].apply(lambda _: str(_))
print('转换后df_test的各列主要数据类型如下:')
print(df_test.dtypes)

运行结果如下:

转换前df_test的各列主要数据类型如下:
A      int64
B    float64
C     object
dtype: object
转换后df_test的各列主要数据类型如下:
A     int64
B    object
C    object
dtype: object
  • 注意: 不能使用 apply 方法将函数应用于多个列的数据类型的修改

参考资料

  1. 如何在 Pandas 中将 DataFrame 列转换为字符串

你可能感兴趣的:(07_Python基础知识)