簡體   English   中英

提取左邊的所有內容 pandas dataframe 中第 2 次出現的字符

[英]Extract everything to the left 2nd occurance of a character in pandas dataframe

我有以下 dataframe 列:

df: 
     Text
0 J Smith abc def
1 T Smith hij klm
2 A Smith xy z

我希望將第二個空格之前的所有內容提取為一個新列:

預計 output:

    Text               Name
0 J Smith abc def       J Smith
1 T Smith hij klm       T Smith
2 A Smith xy z          A Smith

我嘗試了以下方法( Text中的某些項目可能是空白的,因此 if 語句):

df['Name'] = df.Text.apply(lambda x: x.split(" ")[0:1]  if len(x) >0 else 0 )

但沒有這樣的運氣。 關於如何讓它工作的任何想法?

使用Series.str.split然后使用str[:2]從列表中獲取前 2 個元素,然后使用str.join將字符串重新連接在一起:

df["Name"] = df["Text"].str.split(" ").str[:2].str.join(" ")

              Text     Name
0  J Smith abc def  J Smith
1  T Smith hij klm  T Smith
2     A Smith xy z  A Smith

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM