dplyr/magrittr我正在嘗試在 pandas 中編寫一個類似的鏈式操作,其中一個步驟包括一個 replace if 命令。在 R 中,這將是:mtcars %>% mutate(mpg=replace(mpg, cyl==4, -99)) %>% as.data.frame()在 python 中,我可以執行以下操作:data = pd.read_csv('https://gist.githubusercontent.com/ZeccaLehn/4e06d2575eb9589dbe8c365d61cb056c/raw/64f1660f38ef523b2a1a13be77b002b98665cdfe/mtcars.csv')\ .rename(columns={'Unnamed: 0':'brand'}, inplace=True)data.loc[df.cyl == 4, 'mpg'] = -99 但如果這可以成為鏈條的一部分,我會更喜歡。我找不到replacepandas 的任何替代品,這讓我很困惑。我正在尋找類似的東西:data = pd.read_csv('https://gist.githubusercontent.com/ZeccaLehn/4e06d2575eb9589dbe8c365d61cb056c/raw/64f1660f38ef523b2a1a13be77b002b98665cdfe/mtcars.csv')\ .rename(columns={'Unnamed: 0':'brand'}, inplace=True) \ .replace_if(...)
1 回答

楊__羊羊
TA貢獻1943條經驗 獲得超7個贊
在鏈中做起來很簡單。確保您不在inplace=鏈中使用,因為它不會將數據幀返回給鏈中的下一個事物
(pd.read_csv('https://gist.githubusercontent.com/ZeccaLehn/4e06d2575eb9589dbe8c365d61cb056c/raw/64f1660f38ef523b2a1a13be77b002b98665cdfe/mtcars.csv')
.rename(columns={'Unnamed: 0':'brand'})
.assign(mpg=lambda dfa: np.where(dfa["cyl"]==4, -99, dfa["mpg"]))
)
添加回答
舉報
0/150
提交
取消