簡體   English   中英

在 Pandas DataFrame 中獲取列括號之間的文本

[英]Get text between parenthesis of a Column in Pandas DataFrame

我有一個如下所示的數據框

+-----+-------+------------------+--------------------------+
| ID  | Name  | Designation      | Location                 |
+-----+-------+------------------+--------------------------+
| 101 | John  | Technical Lead   | United States (New York) |
+-----+-------+------------------+--------------------------+
| 102 | Benny | Sales Manager    | India (Delhi)            |
+-----+-------+------------------+--------------------------+
| 103 | Vasu  | System Admin     | Japan (Tokyo)            |
+-----+-------+------------------+--------------------------+
| 104 | Dany  | Business Analyst | Australia (Melbourne)    |
+-----+-------+------------------+--------------------------+

現在我只需要從 Location 中提取城市並保留為單獨的列。

預期輸出

+-----+-------+------------------+--------------------------+-----------+
| ID  | Name  | Designation      | Location                 | City      |
+-----+-------+------------------+--------------------------+-----------+
| 101 | John  | Technical Lead   | United States (New York) | New York  |
+-----+-------+------------------+--------------------------+-----------+
| 102 | Benny | Sales Manager    | India (Delhi)            | Delhi     |
+-----+-------+------------------+--------------------------+-----------+
| 103 | Vasu  | System Admin     | Japan (Tokyo)            | Tokyo     |
+-----+-------+------------------+--------------------------+-----------+
| 104 | Dany  | Business Analyst | Australia (Melbourne)    | Melbourne |
+-----+-------+------------------+--------------------------+-----------+

我已經嘗試了以下但得到錯誤'Series' object has no attribute 'find'

import pandas as pd
df = read_excel('myfile.xlsx')
df['city'] = df.apply(lambda st: st[st.find("(")+1:st.find(")")])

使用Series.str.extract()之間的匹配值:

df["city"] = df["Location"].str.extract(r"\((.*?)\)" , expand=False)
print (df)
    ID   Name       Designation                  Location       city
0  101   John    Technical Lead  United States (New York)   New York
1  102  Benny     Sales Manager             India (Delhi)      Delhi
2  103   Vasu      System Admin             Japan (Tokyo)      Tokyo
3  104   Dany  Business Analyst     Australia (Melbourne)  Melbourne

暫無
暫無

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

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