在Python中用数字替换字符串以进行数据分析
有时我们需要将 pandas 数据帧中的字符串值转换为唯一的整数,以便算法能够更好地执行。因此,我们为 Pandas DataFrame 中的字符串值分配了唯一的数值。
注意:在执行之前创建一个包含一些姓名和性别的 example.csv 文件
假设我们有一个包含名称和性别列的表。在性别列中,有男性和女性两个类别,假设我们要将 1 分配给男性,将 2 分配给女性。
例子:
Input :
---------------------
| Name | Gender
---------------------
0 Ram Male
1 Seeta Female
2 Kartik Male
3 Niti Female
4 Naitik Male
Output :
| Name | Gender
---------------------
0 Ram 1
1 Seeta 2
2 Kartik 1
3 Niti 2
4 Naitik 1
方法一:
To create a dictionary containing two
elements with following key-value pair:
Key Value
male 1
female 2
然后使用 for 循环遍历 DataFrame 的 Gender 列,并在找到键的地方替换值。
# import pandas library
import pandas as pd
# creating file handler for
# our example.csv file in
# read mode
file_handler = open("example.csv", "r")
# creating a Pandas DataFrame
# using read_csv function
# that reads from a csv file.
data = pd.read_csv(file_handler, sep = ",")
# closing the file handler
file_handler.close()
# creating a dict file
gender = {'male': 1,'female': 2}
# traversing through dataframe
# Gender column and writing
# values where key matches
data.Gender = [gender[item] for item in data.Gender]
print(data)
输出 :
| Name | Gender
---------------------
0 Ram 1
1 Seeta 2
2 Kartik 1
3 Niti 2
4 Naitik 1
方法二:
方法 2 也类似,但不需要字典文件并且需要更少的代码行。在此,我们在内部迭代 DataFrame 的 Gender 列,并在条件匹配时更改值。
# import pandas library
import pandas as pd
# creating file handler for
# our example.csv file in
# read mode
file_handler = open("example.csv", "r")
# creating a Pandas DataFrame
# using read_csv function that
# reads from a csv file.
data = pd.read_csv(file_handler, sep = ",")
# closing the file handler
file_handler.close()
# traversing through Gender
# column of dataFrame and
# writing values where
# condition matches.
data.Gender[data.Gender == 'male'] = 1
data.Gender[data.Gender == 'female'] = 2
print(data)
输出 :
| Name | Gender
---------------------
0 Ram 1
1 Seeta 2
2 Kartik 1
3 Niti 2
4 Naitik 1
应用
- 这种技术可以应用于数据科学。假设如果我们正在处理包含性别为“男性”和“女性”的数据集,那么我们可以分别分配“0”和“1”等数字,以便我们的算法可以处理数据。
- 此技术还可用于将数据集中的某些特定值替换为新值。
参考
- https://pandas.pydata.org
- https://pandas.pydata.org/pandas-docs/stable/tutorials.html