
Pandas replace values
Pandas: Replacing column values in dataframe
我使用了一种不同的方法来替换值,我认为它应该是最干净的值.但它不起作用.我知道如何解决它,但我想理解为什么它不起作用:
In [108]: df=pd.DataFrame([[1,2,8],[3,4,[5,1,8]],columns=['A','B','C']) In [109]: dfOut[109]: A B C0 1 2 81 3 4 82 5 1 8In [110]: df.loc[:,['A','B']].replace([1,3,2],6,7],inplace=True)In [111]: dfOut[111]: A B C0 1 2 81 3 4 82 5 1 8In [112]: df.loc[:,'A'].replace([1,inplace=True)In [113]: dfOut[113]: A B C0 3 2 81 6 4 82 5 1 8
如果我只在[112]中切割一列,则在[110]中切割多个列的工作方式不同.据我了解.loc方法,它返回一个视图而不是一个副本.在我的逻辑中,这意味着在切片上进行原位更改应该更改整个DataFrame.这就是在[110]行中发生的事情.
解决方法 以下是其中一位开发人员的回答: https://github.com/pydata/pandas/issues/11984这应该理想地显示一个SettingWithcopyWarning,但我认为这很难检测.
你永远不应该做这种类型的链式就地设置.这简直是不好的做法.
惯用的是:
In [7]: df[['A','B']] = df[['A',7])In [8]: dfOut[8]: A B C0 3 7 81 6 4 82 5 3 8
(你可以使用df.loc [:,[‘A’,’B’]],但如上所述更清楚.
总结以上是内存溢出为你收集整理的python – Pandas替换特定列上的值全部内容,希望文章能够帮你解决python – Pandas替换特定列上的值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)