加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在Python DataFrame中拆分字符串

发布时间:2020-12-20 12:32:45 所属栏目:Python 来源:网络整理
导读:我在 Python中有一个带有名字的列的DataFrame(例如Joseph Haydn,Wolfgang Amadeus Mozart,Antonio Salieri等等). 我想得到一个名字的新专栏:海顿,莫扎特,萨列里等等. 我知道如何拆分字符串,但我找不到将其应用于系列或数据框列的方法. 解决方法 如果你有:
我在 Python中有一个带有名字的列的DataFrame(例如Joseph Haydn,Wolfgang Amadeus Mozart,Antonio Salieri等等).

我想得到一个名字的新专栏:海顿,莫扎特,萨列里等等.

我知道如何拆分字符串,但我找不到将其应用于系列或数据框列的方法.

解决方法

如果你有:

import pandas
data = pandas.DataFrame({"composers": [ 
    "Joseph Haydn","Wolfgang Amadeus Mozart","Antonio Salieri","Eumir Deodato"]})

假设您只想要名字(而不是像Amadeus这样的中间名):

data.composers.str.split('s+').str[0]

会给:

0      Joseph
1    Wolfgang
2     Antonio
3       Eumir
dtype: object

您可以将其分配给同一数据框中的新列:

data['firstnames'] = data.composers.str.split('s+').str[0]

姓氏将是:

data.composers.str.split('s+').str[-1]

这使:

0      Haydn
1     Mozart
2    Salieri
3    Deodato
dtype: object

(另请参阅Python Pandas: selecting element in array column以访问“数组”列中的元素)

对于除姓氏之外的所有名称,您可以将“.join(..)”应用于除每行的最后一个元素([:-1])之外的所有元素:

data.composers.str.split('s+').str[:-1].apply(lambda parts: " ".join(parts))

这使:

0              Joseph
1    Wolfgang Amadeus
2             Antonio
3               Eumir
dtype: object

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读