📌  相关文章
📜  在Python中用数字替换字符串以进行数据分析

📅  最后修改于: 2022-05-13 01:54:53.853000             🧑  作者: Mango

在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 

应用

  1. 这种技术可以应用于数据科学。假设如果我们正在处理包含性别为“男性”和“女性”的数据集,那么我们可以分别分配“0”和“1”等数字,以便我们的算法可以处理数据。
  2. 此技术还可用于将数据集中的某些特定值替换为新值。

参考

  • https://pandas.pydata.org
  • https://pandas.pydata.org/pandas-docs/stable/tutorials.html