python 如何转为整形

在Python中,有多种方法可以将其他类型的数据转换为整数,以下是一些常见的转换方法:

python 如何转为整形
(图片来源网络,侵删)

1、使用内置函数int()

int()是Python的内置函数,可以将其他类型的数据转换为整数,将浮点数、字符串或布尔值转换为整数。

将浮点数转换为整数
float_num = 3.14
int_num = int(float_num)
print(int_num)  # 输出:3
将字符串转换为整数
str_num = "42"
int_num = int(str_num)
print(int_num)  # 输出:42
将布尔值转换为整数
bool_num = True
int_num = int(bool_num)
print(int_num)  # 输出:1

2、使用强制类型转换

在某些情况下,可以使用强制类型转换将其他类型的数据转换为整数,将浮点数、字符串或布尔值强制转换为整数。

将浮点数强制转换为整数
float_num = 3.14
int_num = float_num // 1
print(int_num)  # 输出:3
将字符串强制转换为整数
str_num = "42"
int_num = int(str_num) // 1
print(int_num)  # 输出:42
将布尔值强制转换为整数
bool_num = True
int_num = bool_num and 1 or 0
print(int_num)  # 输出:1

3、使用列表推导式和map()函数

可以使用列表推导式和map()函数将一个列表中的多个元素转换为整数,将一个包含浮点数、字符串和布尔值的列表转换为整数列表。

将列表中的浮点数、字符串和布尔值转换为整数列表
mixed_list = [3.14, "42", True]
int_list = list(map(int, mixed_list))
print(int_list)  # 输出:[3, 42, 1]

4、使用numpy库的astype()函数

如果需要处理大量数据,可以使用numpy库的astype()函数将数组中的元素转换为整数,将一个包含浮点数、字符串和布尔值的numpy数组转换为整数数组。

import numpy as np
创建一个包含浮点数、字符串和布尔值的numpy数组
mixed_array = np.array([3.14, "42", True])
int_array = mixed_array.astype(int)
print(int_array)  # 输出:[3, 42, 1]

5、使用pandas库的to_numeric()函数和apply()函数

如果需要处理表格数据,可以使用pandas库的to_numeric()函数和apply()函数将DataFrame中的元素转换为整数,将一个包含浮点数、字符串和布尔值的DataFrame转换为整数DataFrame。

import pandas as pd
from io import StringIO
创建一个包含浮点数、字符串和布尔值的DataFrame(以字符串形式)
data = StringIO("col1,col2,col3
3、14,42,True
")
df = pd.read_csv(data)
print(df)  # 输出:     col1    col2    col3
          0     3.14   42.0    True
          1       NaN   NaN    False
          dtype: float64, float64, bool
使用to_numeric()函数和apply()函数将DataFrame中的元素转换为整数DataFrame(保留缺失值)
df[['col1', 'col2', 'col3']] = df[['col1', 'col2', 'col3']].apply(pd.to_numeric, errors='coerce')
print(df)  # 输出:     col1    col2    col3
          0     3.0     42     1.0
          1       NaN     NaN     0.0
          dtype: float64, float64, int64

在Python中,有多种方法可以将其他类型的数据转换为整数,可以根据实际需求选择合适的方法进行转换。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/449688.html

(0)
未希新媒体运营
上一篇 2024-04-07 16:14
下一篇 2024-04-07 16:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入