2017-03-02 9 views
0

私は例を使ってpythonを学んでいます。関数を完全に内部化するためにデータ構造を学ばなければならないかもしれませんが、誰かがこの段階で私を助けてくれることを願っています。Pythonを使ってテキストデータを消去する

今、私はパンダのデータフレームでスタックされたテキストデータをクリーニングしています。

私は次の結果を得ました。私がしたいことは、分割されたテキストごとに最後の2つの要素を取ることだけです。

[['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?

、解決策はこれにあなたが[「zipファイルを」] dfをするために割り当てるあなたの行を変更することです:

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

こと番号を持たないスライス演算子は、コピーへの変更がオリジナルに影響を与えないように、(ポインタを作成する代わりに)リストの新しいコピーを作成します。

関連する問題