1 回答

TA貢獻1829條經(jīng)驗 獲得超4個贊
避免鏈式索引
這種操作稱為鏈式索引,文檔中明確不鼓勵這樣做:
df[(df['kind'] == 'dog') & (df['colour'] == '')].at['colour'] = 'black'
相反,計算然后使用布爾掩碼:
mask = (df['kind'] == 'dog') & (df['colour'] == '')
df.loc[mask, 'colour'] = 'black'
對可變數(shù)量的變量使用字典
這種操作并沒有在Python工作:
new_colour_dog = 'polka dots'
new_colour+'_dog' # want 'polka dots', but will not work
改用字典:
new_colours = {'dog': 'polka dots', 'cat': 'plaid', 'bird': 'stripes'}
然后,您可以迭代字典的鍵值對:
for animal, new_colour in new_colours.items():
mask = (df['kind'] == animal) & (df['colour'] == '')
df.loc[mask, 'colour'] = new_colour
當mask返回一系列False值時,您不需要測試/特殊情況實例。
添加回答
舉報