在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容