簡體   English   中英

正則表達式不區分大小寫過濾熊貓中的列

[英]regex case insensitive filtering of columns in pandas

我正在嘗試使用 Python 在 python 中匹配 csv 文件中的字符串(列),但它不匹配任何內容。 我希望匹配的字符串不區分大小寫。 我很新,但這就是我試圖做的

test = pd.read_csv("data.csv")
mytest= pd.DataFrame(test, columns=[re.search("[a-zA-Z1-9_]", "columnname1", re.IGNORECASE),])
print(mytest)

任何幫助將不勝感激

如果我了解您的意思,您可以filter df 以僅返回名稱匹配的列並使其不區分大小寫:

In [298]:

df = pd.DataFrame({'columnname1':np.arange(5), 'ColumnName1':np.arange(5), 'columnname2':0, 'column name 1':0})
df
Out[298]:
   ColumnName1  column name 1  columnname1  columnname2
0            0              0            0            0
1            1              0            1            0
2            2              0            2            0
3            3              0            3            0
4            4              0            4            0

In [299]:

import re
df.filter(regex=re.compile("columnname1", re.IGNORECASE))
Out[299]:
   ColumnName1  columnname1
0            0            0
1            1            1
2            2            2
3            3            3
4            4            4

編輯

只匹配名稱前面沒有單詞的名稱,因此匹配“測試”而不是“我的測試”:

In [52]:

df = pd.DataFrame({'Test':np.arange(5), 'ColumnName1':np.arange(5), 'My Test':0, 'My column name 1':0})
import re
df.filter(regex=re.compile(r"^Test$", re.IGNORECASE))
Out[52]:
   Test
0     0
1     1
2     2
3     3
4     4

所以^在 str 的開頭尋找 'Test' 並且$標記要搜索的模式的結尾,有一個方便的備忘單

暫無
暫無

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

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