在Pandas数据框架中分割一列并获得其中的一部分

在Pandas数据框架中分割一列并获得其中的一部分

当数据框架中任何一列的一部分很重要,并且需要将其分开时,我们可以根据要求分割一列。

我们可以使用Pandas .str访问器,它可以对系列和数据帧进行快速的矢量字符串操作,并返回一个字符串对象。Pandas str访问器有许多有用的方法,其中之一是str.split,它可以和split一起使用,以获得字符串的所需部分。要获得字符串的第n部分,首先用分隔符分割列,然后对返回的对象再次应用str[n-1],即Dataframe.columnName.str.split(” “).str[n-1] 。

让我们通过例子来说明一下。

代码#1:打印一个被分割的列的数据对象。

import pandas as pd
import numpy as np
df = pd.DataFrame({'Geek_ID':['Geek1_id', 'Geek2_id', 'Geek3_id', 
                                         'Geek4_id', 'Geek5_id'],
                'Geek_A': [1, 1, 3, 2, 4],
                'Geek_B': [1, 2, 3, 4, 6],
                'Geek_R': np.random.randn(5)})
  
# Geek_A  Geek_B   Geek_ID    Geek_R
# 0       1       1  Geek1_id    random number
# 1       1       2  Geek2_id    random number
# 2       3       3  Geek3_id    random number
# 3       2       4  Geek4_id    random number
# 4       4       6  Geek5_id    random number
  
print(df.Geek_ID.str.split('_').str[0])
Python

输出:

0    Geek1
1    Geek2
2    Geek3
3    Geek4
4    Geek5
dtype: object
Python

代码#2:打印一个返回数据对象的列表。

import pandas as pd
import numpy as np
df = pd.DataFrame({'Geek_ID':['Geek1_id', 'Geek2_id', 'Geek3_id',
                                         'Geek4_id', 'Geek5_id'],
                'Geek_A': [1, 1, 3, 2, 4],
                'Geek_B': [1, 2, 3, 4, 6],
                'Geek_R': np.random.randn(5)})
  
# Geek_A  Geek_B   Geek_ID    Geek_R
# 0       1       1  Geek1_id    random number
# 1       1       2  Geek2_id    random number
# 2       3       3  Geek3_id    random number
# 3       2       4  Geek4_id    random number
# 4       4       6  Geek5_id    random number
  
print(df.Geek_ID.str.split('_').str[0].tolist())
Python

输出:

['Geek1', 'Geek2', 'Geek3', 'Geek4', 'Geek5']
Python

代码#3:打印一个元素的列表。

import pandas as pd
import numpy as np
  
df = pd.DataFrame({'Geek_ID':['Geek1_id', 'Geek2_id', 'Geek3_id',
                                         'Geek4_id', 'Geek5_id'],
                'Geek_A': [1, 1, 3, 2, 4],
                'Geek_B': [1, 2, 3, 4, 6],
                'Geek_R': np.random.randn(5)})
  
# Geek_A  Geek_B   Geek_ID    Geek_R
# 0       1       1  Geek1_id    random number
# 1       1       2  Geek2_id    random number
# 2       3       3  Geek3_id    random number
# 3       2       4  Geek4_id    random number
# 4       4       6  Geek5_id    random number
  
print(df.Geek_ID.str.split('_').str[1].tolist())
Python

输出:

['id', 'id', 'id', 'id', 'id']
Python

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册