2016-12-16 13 views
2

私はデータフレームを持っています。私は、 "ラベル"の列の値を変更するwanto。 値は1から7まででなければなりませんが、#4は使用しないでください。また、それぞれの2つが必要です。Pythonで非連続数の列値を変更するにはどうすればよいですか?

私はそれを行うことができました。しかし、私の方法は小さなデータフレームにのみ役立ちます。 大きなデータフレームの場合、どのように自動化できますか?

#Original dataframe 
df = pd.DataFrame(np.random.rand(12, 5)) 
label=np.array([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]) 
df['label'] = label 
df 

#My attempt :) 
df['label'] = [1, 1, 2, 2, 3, 3, 5, 5, 6, 6, 7, 7] 
df 

ORIGINAL DATAFRAME

enter image description here

EXPECTED DATAFRAME(#4が欠落している!!!)

enter image description here

+0

長いデータセットの場合は、8,12,16などもスキップしますか? – Divakar

+0

Nope。ちょうど4。 – Aizzaac

答えて

3

使用フロア分割及び> = 4

label = np.arange(len(df)) // 2 + 1 
df['label'] = label + (label >= 4) 

df 
を追加

enter image description here

関連する問題