我有一個這樣的資料框:
id value
111 0.222
222 2.253
333 0.444
444 21.256
....
我想添加一個新列flag和行的前半部分,設定flag為 0,其余設定為1:
id value flag
111 0.222 0
222 2.253 0
333 0.444 0
444 21.256 0
...
8888 1212.500 1
9999 0.025 1
做到這一點的最佳方法是什么?我累了以下幾點:
df['flag'][:int(len(df) / 2)] = 0
df['flag'][int(len(df) / 2):] = 1
但這給了我KeyError: 'flag',假設我可能需要創建一個帶有 name 的空列flag?有人可以幫忙嗎?謝謝。
uj5u.com熱心網友回復:
即使您創建一個空列,由于鏈索引,您也會收到一些警告/錯誤。嘗試立即分配:
df['flag'] = (np.arange(len(df)) >= (len(df)//2)).astype(int)
或者
l = len(df)//2
df['flag'] = [0] * s [1] * (len(df) - l)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/344017.html
