📜  python pandas 将系列转换为百分比 - Python (1)

📅  最后修改于: 2023-12-03 15:34:03.130000             🧑  作者: Mango

Python Pandas 将系列转换为百分比

Pandas是Python中数据处理和分析的重要库。而Series是Pandas中基本的数据结构之一,类似于一列数据,其中的每个元素都有一个索引。

有时候,我们需要将Series中的数值转换为百分数形式,以更好地分析和展示数据,这时候可以使用Pandas中的方法。

将Series转换为百分数

我们可以使用Pandas中的Series.mul()方法将一个Series的所有元素乘以一个常数,然后将结果乘以100,即可将其转换为百分数形式。

import pandas as pd

# 创建一个Series
data = {'A': 1, 'B': 2, 'C': 3}
s = pd.Series(data)

# 将Series转换为百分数
s_percentage = s.mul(100).round(2).astype(str) + '%'

print(s_percentage)

输出结果为:

A    100.0%
B    200.0%
C    300.0%
dtype: object

在这里,我们使用了mul()方法将每个元素乘以100,使用round(2)方法将结果保留两位小数,使用astype(str)方法将结果转换为字符串类型,最后将结果加上百分号即可。

将数据框中的多个Series转换为百分数

如果我们需要将一个数据框中的多个Series都转换为百分数形式,可以使用Pandas中的applymap()方法,对每个元素都应用相同的函数。

import pandas as pd

# 创建一个数据框
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)

# 将数据框中的所有元素都转换为百分数
df_percentage = df.applymap(lambda x: str(round(x * 100, 2)) + '%')

print(df_percentage)

输出结果为:

        A       B       C
0  100.0%  400.0%  700.0%
1  200.0%  500.0%  800.0%
2  300.0%  600.0%  900.0%

在这里,我们使用了applymap()方法将数据框中的每个元素都应用了一个lambda函数,该函数将每个元素乘以100,保留两位小数,并加上百分号。

总结

使用Pandas中的Series.mul()方法和applymap()方法,可以方便地将Series和数据框中的数值转换为百分数。这样可以更好地展示和分析数据,是Pandas中数据处理的一种重要方法。