簡體   English   中英

如何從 excel 和 Python 的列值中提取字母數字詞?

[英]How to extract alphanumeric word from column values in excel with Python?

我需要一種方法來提取所有以“A”開頭的單詞,緊接着是一個 6 位數字字符串(即 A112233、A000023)。

每個單元格都包含句子,並且可能會出現用戶錯誤,因為他們忘記放置空格,因此如果您也能考慮到這一點,我們將不勝感激。

我已經對使用 Python 正則表達式和 Pandas 進行了研究,但我還不夠了解,而且有點時間緊迫。

Excel范例

假設您的df的內容由以下代碼構成:

import pandas as pd
df1=pd.DataFrame(
        {
            "columnA":["A194533","A4A556633 system01A484666","A4A556633","a987654A948323a882332A484666","A238B004867","pageA000023lol","a089923","something lol a484876A48466 emoji","A906633 A556633a556633"]
        }
)
print(df1)

Output:

                             columnA
0                            A194533
1          A4A556633 system01A484666
2                          A4A556633
3       a987654A948323a882332A484666
4                        A238B004867
5                     pageA000023lol
6                            a089923
7  something lol a484876A48466 emoji
8             A906633 A556633a556633

現在讓我們獲取與正則表達式模式對應的目標:

result = df1['columnA'].str.extractall(r'([A]\d{6})')

Output:

               0
  match         
0 0      A194533
1 0      A556633
  1      A484666
2 0      A556633
3 0      A948323
  1      A484666
5 0      A000023
8 0      A906633
  1      A556633

數一數:

result.value_counts()

Output:

A556633    3
A484666    2
A000023    1
A194533    1
A906633    1
A948323    1
dtype: int64

將唯一索引發送到列表中:

unique_list = [i[0] for i in result.value_counts().index.tolist()]

Output:

['A556633', 'A484666', 'A000023', 'A194533', 'A906633', 'A948323']

值計入列表:

unique_count_list = result.value_counts().values.tolist()

Output:

[3, 2, 1, 1, 1, 1]

暫無
暫無

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

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