我有一個遵循這個邏輯的 .csv
name, number, 2dlist, bool
"entry1", 1, [[0,1],[2,3]], true
"entry2", 2, [[4,5],[6,7]], true
我需要什么樣的正則運算式將行分隔為四列,以便雙方括號內的所有內容都被記為一列,即 [[ ... ]]。
我是 regex 的新手,但設法編輯了以下代碼示例
df = pd.read_csv("../file.csv", sep=r",(?![^\[]*[\]])",header=0, engine="python")
它適用于單括號但不適用于雙括號。如在,串列之間的逗號1],[2仍然被識別為分隔符,即使它不應該。
這是一個業余愛好專案的一部分,我可能會更好地改變最初的方法。但是,在這一點上,我只對在這種特定情況下有效的正則運算式感到好奇。
uj5u.com熱心網友回復:
使用您的示例,您可能可以拆分資料框,, 但可能并不那么簡單:
df = pd.read_csv('data.csv', sep=', ', engine='python')
print(df)
# Output
name number 2dlist bool
0 "entry1" 1 [[0,1],[2,3]] True
1 "entry2" 2 [[4,5],[6,7]] True
uj5u.com熱心網友回復:
如果你的 csv 看起來像這樣
name,number,2dlist,bool
0,"entry1",1,"[[0,1],[2,3]]",True
1,"entry2",2,"[[4,5],[6,7]]",True
這會正常作業:
df = pd.read_csv('data.csv', sep=',')
因為現在串列存盤在撇號之間,中間的空格和逗號被忽略。如果資料不是以這種方式存盤,則需要以通用方式分隔良好的正則運算式代碼。嘗試添加正則運算式標簽來質疑你可能會更好的解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/403377.html
標籤:
