這是三個問題,我只是無法弄清楚,希望有人能幫助我。迭代包含列表的pandas列中的值並僅檢索唯一值
import pandas as pd
data = {'Col1': ['ONE, ONE, NULL', 'ONE, TWO, THREE', 'TWO, NULL, TEN']}
index = pd.Index(['d1','d2','d3'])
data = pd.DataFrame(data,index=index)
pattern = 'ONE|TWO' <----QUESTION1
data['Col1'].str.findall(pattern) <----QUESTION2
問題1:我怎樣才能改變這種正則表達式,使「一」只在D1一旦發現?因爲它現在是每個發現的實例將被返回,如下所示。
d1 [ONE, ONE]
d2 [ONE, TWO]
d3 [TWO]
我想這
d1 [ONE]
d2 [ONE, TWO]
d3 [TWO]
問題2:
我想借此列表D1,D2和D3,併爲只包含唯一值的一個列表。這是這樣的:
set(d1 + d2 + d3) ---> ['ONE', 'TWO']
問題3:
如果我會做這樣的事情:
data['Col2'] = data['Col1'].str.findall(pattern)
我怎麼能在col2的每一行遍歷得到我在Question2中要求的結果是一樣的嗎?
完美解決Question2,謝謝!我將如何繼續並從熊貓表中提取一個列表?我想爲Col2中的每一行創建一個新列表,創建的列表應該具有Col2中所示的形狀。 – user3139545
@ user3139545我不知道你在問什麼:s FWIW大熊貓的經驗法則是避免在DataFrame/Series中列表,通常有更好的方法。 –
在Col2中,我將有一個看起來像這樣['ONE','TWO','THREE']的字符串,現在我想爲每一行讀取這個字符串,並將它寫入一個python列表中。 – user3139545