簡體   English   中英

Python Pandas切片列字符串(取決於條件)

[英]Python Pandas slice column string up to a character based on condition

我嘗試了多種方法,根據條件將Panda列字符串切成特定字符。

例如,考慮一下Kaggle的Titanic數據集,我想在其中將“名稱”列中的所有名稱切成'('字符,以防它們包含該字符,從而使名稱中不存在方括號,並且名稱中僅包含之前的字符因此,您可以將其視為擺脫括號以與括號之前的內容保持一致。

我的數據集樣本

我用這種方式:

df.loc[df['Name'].str.rfind('(') > -1, 'Name'] = df['Name'].str.slice(0, df['Name'].str.rfind('('))

它實質上是在找到包含'('的名稱時將其切成薄片,否則將返回該名稱(不包括左括號。該切片全部是關於在左括號之前查找並獲取字符。

我的解決方案無法正常工作,因為它會產生“ NaN”,我該如何解決?

您可以只使用pd.Series.str.split來獲取' ('之前' ('所有內容。

import pandas as pd

df = pd.DataFrame({'Name': ['Braund, Mr. Owen Harris',
                           'Cummings, Mrs. John Bradley (Florence Briggs)',
                           'Heikkinen, Miss. Laina',
                           'Futrelle, Mrs. Jacques Heath (Lily May Peel)',
                           'Allen, Mr. William Henry']})

df['Name'] = df.Name.str.split(' \(', expand=True)[0]

輸出:

print(df)
                           Name
0       Braund, Mr. Owen Harris
1   Cummings, Mrs. John Bradley
2        Heikkinen, Miss. Laina
3  Futrelle, Mrs. Jacques Heath
4      Allen, Mr. William Henry

暫無
暫無

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

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