Python:如何在数据帧中拆分字符串列?

2024-09-30 18:19:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含两列的dataframe,一列是Date,另一列是Location(Object)数据类型,下面是带值的位置列的格式:

 Date                                            Location
1     07/12/1912                            AtlantiCity, New Jersey   
2     08/06/1913                 Victoria, British Columbia, Canada   
3     09/09/1913                                 Over the North Sea   
4     10/17/1913                         Near Johannisthal, Germany   
5     03/05/1915                                    Tienen, Belgium   
6     09/03/1915                              Off Cuxhaven, Germany   
7     07/28/1916                              Near Jambol, Bulgeria   
8     09/24/1916                                Billericay, England   
9     10/01/1916                               Potters Bar, England   
10    11/21/1916                                     Mainz, Germany

我的要求是用","分隔符来分割位置,并在Location列中只保留第二部分(ex. New Jersey, Canada, Germany, England etc..)。我还要检查它是否只有一个元素(单个元素的值没有“,”)

有没有一种方法可以不用循环每一行而使用预定义的方法?在

抱歉,如果这个问题不符合标准,因为我是Python新手,还在学习。在


Tags: 方法元素dataframenewdateobject格式location
2条回答

一种直接的方法是将apply方法split添加到列中的每个元素,然后选择最后一个:

df.Location.apply(lambda x: x.split(",")[-1])

1             New Jersey
2                 Canada
3     Over the North Sea
4                Germany
5                Belgium
6                Germany
7               Bulgeria
8                England
9                England
10               Germany
Name: Location, dtype: object

要检查每个单元格是否只有一个元素,我们可以对列使用str.contains方法:

^{pr2}$

我们可以试试str.extract

print(df['Location'].str.extract(r'([^,]+$)'))    
#0            New Jersey
#1                Canada
#2    Over the North Sea
#3               Germany
#4              Belgium 
#5               Germany
#6              Bulgeria
#7               England
#8               England
#9               Germany

相关问题 更多 >