📅  最后修改于: 2023-12-03 14:52:29.807000             🧑  作者: Mango
在数据预处理时,我们通常需要将文本数据转换为数字数据。在 Python 的 pandas 库中,提供了很多方法将单词转换为数字。
可以使用 pandas 库的 map()
方法将一个单词映射为一个数字,示例如下:
import pandas as pd
# 创建数据
data = pd.Series(['apple', 'pear', 'banana', 'apple', 'banana', 'pear'])
# 创建映射表
word_to_num = {'apple': 1, 'banana': 2, 'pear': 3}
# 将单词映射为数字
data_num = data.map(word_to_num)
print(data_num)
输出结果:
0 1
1 3
2 2
3 1
4 2
5 3
dtype: int64
如果要将多个单词映射为数字,可以使用 pandas 库的 replace()
方法,示例如下:
import pandas as pd
# 创建数据
data = pd.Series(['apple', 'pear', 'banana', 'apple', 'banana', 'pear'])
# 创建映射表
word_to_num = {'apple': 1, 'banana': 2, 'pear': 3}
# 将多个单词映射为数字
data_num = data.replace(word_to_num)
print(data_num)
输出结果:
0 1
1 3
2 2
3 1
4 2
5 3
dtype: int64
如果将单词转换为数字,可能会引入某些偏序关系,因此更常见的做法是将单词转换为 one-hot 编码。
可以使用 pandas 库的 get_dummies()
方法将单词转换为 one-hot 编码,示例如下:
import pandas as pd
# 创建数据
data = pd.Series(['apple', 'pear', 'banana', 'apple', 'banana', 'pear'])
# 将单词转换为 one-hot 编码
data_one_hot = pd.get_dummies(data)
print(data_one_hot)
输出结果:
apple banana pear
0 1 0 0
1 0 0 1
2 0 1 0
3 1 0 0
4 0 1 0
5 0 0 1
以上就是在 Python pandas 中将单词转换为数字的方法。通过 map()
方法、replace()
方法和 get_dummies()
方法,我们可以方便地将单词转换为数字或 one-hot 编码。