📜  在 Pandas-Python 中获取列的子字符串

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

在 Pandas-Python 中获取列的子字符串

现在,我们将了解如何获取 Pandas 数据框中列的所有值的子字符串。这种提取在处理数据时非常有用。例如,我们在一列中有不同人的名字和姓氏,我们需要提取他们名字的前 3 个字母来创建他们的用户名。

示例 1:
我们可以遍历列的范围并计算列中每个值的子字符串。

# importing pandas as pd
import pandas as pd 
  
# creating a dictionary
dict = {'Name':["John Smith", "Mark Wellington", 
                "Rosie Bates", "Emily Edward"]}
  
# converting the dictionary to a
# dataframe
df = pd.DataFrame.from_dict(dict)
  
# storing first 3 letters of name
for i in range(0, len(df)):
    df.iloc[i].Name = df.iloc[i].Name[:3]
  
df

输出:

pandas-extract-substring-1

注意:有关更多信息,请参阅Python Extracting Rows Using Pandas

示例 2:在此示例中,我们将使用str.slice()

# importing pandas as pd
import pandas as pd 
  
# creating a dictionary
dict = {'Name':["John Smith", "Mark Wellington",
                "Rosie Bates", "Emily Edward"]}
  
# converting the dictionary to a 
# dataframe
df = pd.DataFrame.from_dict(dict)
  
# storing first 3 letters of name as username
df['UserName'] = df['Name'].str.slice(0, 3)
  
df

输出:

熊猫提取物 2

示例 3:我们还可以通过使用方括号以不同的方式使用 str 访问器。

# importing pandas as pd
import pandas as pd 
  
# creating a dictionary
dict = {'Name':["John Smith", "Mark Wellington", 
                "Rosie Bates", "Emily Edward"]}
  
# converting the dictionary to a dataframe
df = pd.DataFrame.from_dict(dict)
  
# storing first 3 letters of name as username
df['UserName'] = df['Name'].str[:3]
  
df

输出:

熊猫提取物 21

示例 4:我们也可以将str.extract用于此任务。在本例中,我们将每个人的姓氏存储在“LastName”列中。

# importing pandas as pd
import pandas as pd 
  
# creating a dictionary
dict = {'Name':["John Smith", "Mark Wellington",
                "Rosie Bates", "Emily Edward"]}
  
# converting the dictionary to a dataframe
df = pd.DataFrame.from_dict(dict)
  
# storing lastname of each person
df['LastName'] = df.Name.str.extract(r'\b(\w+)$', 
                                     expand = True)
  
df

输出:

pandas-extract-substring-2