在 Pandas DataFrame 中将整数转换为字符串的最快方法

pythonserver side programmingprogramming

在 Python 中,有很多方法可以将 Pandas Dataframe 中的整数转换为字符串,例如 astype() 方法、apply() 方法、map() 方法、列表推导等。在所有这些方法中,可以通过跟踪每种方法转换所花费的时间来确定在 Pandas 数据框中将整数转换为字符串的最快方法。在本文中,我们将了解如何使用这四种方法将 Pandas 数据框中的整数转换为字符串,然后跟踪每种转换所需的时间。

方法 1:使用列表推导式方法

在此方法中,我们通过迭代整数列并使用列表推导式将每个整数转换为字符串值来创建字符串值列表。

示例

在下面的示例中,我们创建了一个包含整数值的示例 Pandas 数据框。为了将这些转换为字符串值,我们使用列表推导式创建一个字符串值列表,并将字符串值列表分配给整数列。

import pandas as pd

# 创建一个带有整数列的示例数据框
df = pd.DataFrame({'int_column': [1, 2, 3, 4, 5]})

# 使用列表推导式创建一个字符串值列表
str_list = [str(i) for i in df['int_column']]

# 将字符串值列表分配给整数列
df['int_column'] = str_list

# 打印数据框
print(df)

输出

int_column
0          1
1          2
2          3
3          4
4          5

方法 2:使用 astype() 方法

astype() 方法将整个列从一种数据类型转换为另一种数据类型。然后将列的每个元素从一种数据类型转换为另一种数据类型。

示例

在下面的示例中,我们创建了一个带有整数列的示例数据框,然后使用 astype() 函数将该列转换为字符串。

import pandas as pd

# 创建一个带有整数列的示例数据框
df = pd.DataFrame({'int_column': [1, 2, 3, 4, 5]})

# 将整数列转换为字符串列
df['int_column'] = df['int_column'].astype(str)

# 打印数据框
print(df)

输出

  int_column
0          1
1          2
2          3
3          4
4          5

方法 3:使用 apply() 方法

apply 方法将函数应用于列的每个元素。使用 lambda 函数,我们可以将其应用于列的每个元素,并将其从整数转换为字符串。

示例

在下面的示例中,我们创建一个带有整数列的示例数据框,然后定义一个 lambda 函数将整数转换为字符串,并将该 lambda 函数应用于列的每个元素。

import pandas as pd

# 创建一个带有整数列的示例数据框
df = pd.DataFrame({'int_column': [1, 2, 3, 4, 5]})

# 定义一个 lambda 函数将整数转换为字符串
int_to_str = lambda x: str(x)

# 将 lambda 函数应用于整数列
df['int_column'] = df['int_column'].apply(int_to_str)

# 打印数据框
print(df)

输出

  int_column
0          1
1          2
2          3
3          4
4          5

方法 4:使用 map() 方法

map() 方法也可以映射到列的每个元素。可以创建一个 lambda 函数,将整数转换为字符串值并映射到整数列。

示例

import pandas as pd

# 创建一个带有整数列的示例数据框
df = pd.DataFrame({'int_column': [1, 2, 3, 4, 5]})

# 定义一个 lambda 函数,将整数转换为字符串
int_to_str = lambda x: str(x)

# 将 lambda 函数映射到整数列
df['int_column'] = df['int_column'].map(int_to_str)

# 打印数据框
print(df)

输出

  int_column
0          1
1          2
2          3
3          4
4          5

比较所有四种方法

我们可以编写一个代码来测量在 pandas 数据框中将整数转换为字符串的每种方法所花费的时间。耗时最少的方法就是最快的方法。

示例

import pandas as pd
import time

import pandas as pd
import time

# 创建一个带有整数列的示例数据框
df = pd.DataFrame({'int_column': [1, 2, 3, 4, 5]*10000})

# 方法 1:使用 astype() 方法
start_time = time.time()
df['int_column'] = df['int_column'].astype(str)
method1_time = time.time() - start_time
print("方法 1 所用时间: ", method1_time)

# 方法 2:使用 apply() 方法
start_time = time.time()
int_to_str = lambda x: str(x)
df['int_column'] = df['int_column'].apply(int_to_str)
method2_time = time.time() - start_time
print("方法 2 所用时间: ", method2_time)

# 方法 3:使用 map() 方法
start_time = time.time()
int_to_str = lambda x: str(x)
df['int_column'] = df['int_column'].map(int_to_str)
method3_time = time.time() - start_time
print("方法 3 所用时间: ", method3_time)

# 方法 4:使用列表推导式
start_time = time.time()
str_list = [str(i) for i in df['int_column']]
df['int_column'] = str_list
method4_time = time.time() - start_time
print("方法 4 所用时间:", method4_time)

# 确定最快的方法
times = {'Method 1': method1_time,
      'Method 2': method2_time,
      'Method 3': method3_time,
      'Method 4': method4_time}
fastest_method = min(times, key=times.get)
print("The fastest method is:", fastest_method)

输出

方法 1 所用时间:0.03693246841430664
方法 2 所用时间:0.023466110229492188
方法 3 所用时间:0.02350783348083496
方法 4 所用时间:0.027480602264404297
最快的方法是:方法 3

以上输出显示最快的方法是 apply() 方法。

结论

在 Pandas 数据框中将整数转换为字符串的最快方法是 apply() 方法。在本文中,我们了解了在 Pandas 数据框中将整数转换为字符串的所有方法,并比较了所有方法以找出最快的方法。


相关文章