2016-09-30 138 views
2

假設我們有一個包含6列的數據框。對於其中3列的子集,我們希望將3的實例更改爲1.您能否提出一種優雅的方式來實現? 只需寫一行像:Python:根據列名稱和條件替換數據框架值

df['A'][df.A == 3] = 1 

是在我的真實數據低效的,因爲尺寸大得多(例如,更改50出來的200個變量)。

也許我們可以在這個例子中工作:

df = pd.DataFrame(np.random.randint(0,10,size=(100, 6)), columns=list('ABCDEF')) 

我們想要的3個值改爲1列A,B和C.感謝。

回答

0

您可以遍歷列的子集並使用loc進行分配。

subset cols = ['A', 'B', 'C'] # For example. 
for col in subset_cols: 
    df.loc[df[col] == 3, col] = 1 
+0

完美,謝謝(upvoted我還沒有15分) – JPico6