2017-03-02 55 views
0

我正在學習Python的例子。也許我必須學習數據結構以完全內化函數,但是我希望有人能夠在這個階段幫助我。使用Python清理文本數據

現在,我正在清理由熊貓數據幀堆疊的文本數據。

我得到了以下結果,我想要做的只是爲每個拆分文本取最後兩個元素。

[['Australian Centre for Ancient DNA', 
    ' School of Biological Sciences', 
    ' University of Adelaide', 
    ' Adelaide', 
    ' South Australia 5005', 
    ' Australia'], 
['Department of Ecology and Evolutionary Biology', 
    ' Ramaley Biology', 
    ' University of Colorado', 
    ' Boulder', 
    ' CO 80309', 
    ' USA']] 

所以,我的審判是像

df["zip"] = df["Af_split_split"] 
i = 0 
j = 0 
df.iloc[i,7][j] = df.iloc[i,6][j][len(df.iloc[i,6][j])-2:len(df.iloc[i,6][j])-1] 

然而,當我試了一下,在數據幀的另一列元素也發生了變化。 (請參閱第一行的Af_split,Af_split_split,zip具有相同的值)

我該如何處理這個問題?

enter image description here

回答

0

如果我正確理解你的問題,從你描述症狀,您的問題是一個典型的一個:你需要複製一個列表,並修改副本,而不修改原始。這已經回答了有關堆棧溢出已經見這裏:How to clone or copy a list?

爲了您的具體的例子,解決的辦法是修改你行,你分配的df,[「拉鍊」]這樣的:

df["zip"] = df["Af_split_split"][:] 

那沒有數字的切片運算符將創建列表的新副本(而不是創建指針),以便對副本進行修改不會影響原始數據。