pandas astype float 转换为int

pandas astype float 转换为int

参考:pandas astype float to int

在数据处理过程中,经常需要对数据类型进行转换以满足数据分析或数据存储的需求。Pandas 是一个强大的数据处理库,它提供了多种数据类型转换的方法。本文将详细介绍如何使用 Pandas 中的 astype 方法将浮点数(float)转换为整数(int)。这种类型转换在数据清洗和预处理中非常常见,尤其是当我们需要将浮点数表示的数值转换为整数形式以减少数据存储空间或者满足特定的数据格式要求时。

示例代码 1: 基本的 float 到 int 转换

import pandas as pd

# 创建一个包含浮点数的 DataFrame
df = pd.DataFrame({
    'A': [1.0, 2.2, 3.5],
    'B': [4.6, 5.1, 6.8]
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 使用 astype 将浮点数转换为整数
df_int = df.astype(int)
print(df_int)

Output:

pandas astype float 转换为int

示例代码 2: 转换指定列

import pandas as pd

# 创建一个包含浮点数和字符串的 DataFrame
df = pd.DataFrame({
    'A': [1.0, 2.2, 3.5],
    'B': ['one', 'two', 'three']
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 只将列 'A' 从浮点数转换为整数
df['A'] = df['A'].astype(int)
print(df)

Output:

pandas astype float 转换为int

示例代码 3: 处理转换时的数据丢失

import pandas as pd

# 创建一个包含浮点数的 DataFrame
df = pd.DataFrame({
    'A': [1.9, 2.5, 3.1],
    'B': [4.9, 5.5, 6.2]
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 使用 astype 将浮点数转换为整数,注意小数部分将被丢弃
df_int = df.astype(int)
print(df_int)

Output:

pandas astype float 转换为int

示例代码 4: 使用 round() 函数先四舍五入

import pandas as pd

# 创建一个包含浮点数的 DataFrame
df = pd.DataFrame({
    'A': [1.9, 2.5, 3.1],
    'B': [4.9, 5.5, 6.2]
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 先四舍五入再转换为整数
df_rounded = df.round().astype(int)
print(df_rounded)

Output:

pandas astype float 转换为int

示例代码 5: 处理含有 NaN 的 DataFrame

import pandas as pd
import numpy as np

# 创建一个包含浮点数和 NaN 的 DataFrame
df = pd.DataFrame({
    'A': [np.nan, 2.5, 3.1],
    'B': [4.9, np.nan, 6.2]
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 将浮点数转换为整数,NaN 保持不变
df_int = df.astype('Int64')
print(df_int)

示例代码 6: 使用 fillna() 处理 NaN

import pandas as pd
import numpy as np

# 创建一个包含浮点数和 NaN 的 DataFrame
df = pd.DataFrame({
    'A': [np.nan, 2.5, 3.1],
    'B': [4.9, np.nan, 6.2]
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 先填充 NaN,然后转换类型
df_filled = df.fillna(0).astype(int)
print(df_filled)

Output:

pandas astype float 转换为int

示例代码 7: 转换时指定错误处理

import pandas as pd

# 创建一个包含浮点数和非数字字符串的 DataFrame
df = pd.DataFrame({
    'A': [1.0, 'two', 3.5],
    'B': [4.6, 'five', 6.8]
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 尝试转换类型,使用 errors='ignore' 忽略错误
df_int = df.astype(int, errors='ignore')
print(df_int)

Output:

pandas astype float 转换为int

示例代码 8: 使用 apply() 函数进行转换

import pandas as pd

# 创建一个包含浮点数的 DataFrame
df = pd.DataFrame({
    'A': [1.0, 2.2, 3.5],
    'B': [4.6, 5.1, 6.8]
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 使用 apply 函数将所有列的数据类型转换为整数
df_int = df.apply(lambda x: x.astype(int))
print(df_int)

Output:

pandas astype float 转换为int

示例代码 9: 结合条件语句进行转换

import pandas as pd

# 创建一个包含浮点数和条件的 DataFrame
df = pd.DataFrame({
    'A': [1.0, 2.2, 3.5],
    'B': [4.6, 5.1, 6.8],
    'C': ['yes', 'no', 'yes']
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 只有当列 'C' 为 'yes' 时,才将列 'A' 和 'B' 转换为整数
df.loc[df['C'] == 'yes', ['A', 'B']] = df.loc[df['C'] == 'yes', ['A', 'B']].astype(int)
print(df)

Output:

pandas astype float 转换为int

示例代码 10: 使用 where() 函数进行条件转换

import pandas as pd
import numpy as np

# 创建一个包含浮点数的 DataFrame
df = pd.DataFrame({
    'A': [1.0, 2.2, 3.5],
    'B': [4.6, 5.1, 6.8]
}, index=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

# 使用 where 函数在条件满足时进行类型转换
df_int = df.where(df < 3, df.astype(int))
print(df_int)

Output:

pandas astype float 转换为int

以上示例代码展示了如何在不同情况下使用 Pandas 的 astype 方法将浮点数转换为整数。这些示例涵盖了从基本转换到处理复杂情况(如含有 NaN、条件转换等)的多种场景。在实际应用中,根据数据的具体情况选择合适的方法进行类型转换是非常重要的。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程