我想使用将旧代码映射到新代码的字典替换数据框列中的某些值.
di = dict( { "myVar": {11:0, 204:11} } )
mydata.replace( to_replace = di, inplace = True )
Run Code Online (Sandbox Code Playgroud)
但是一些新代码和旧代码重叠.当使用数据帧的.replace方法时,我遇到错误'Replacement not allowed with overlapping keys and values'
我目前的解决方法是手动替换替换违规密钥,然后将字典应用于剩余的非重叠案例.
mydata.loc[ mydata.myVar == 11, "myVar" ] = 0
di = dict( { "myVar": {204:11} } )
mydata.replace( to_replace = di, inplace = True )
Run Code Online (Sandbox Code Playgroud)
有更紧凑的方法吗?
数据框kidsSingleHeads94_98是从数据框创建的mydata94_98。.is_copy的属性显示kidsSingleHeads94_98了对 的弱引用mydata94_98。
>>> kidsSingleHeads94_98.is_copy
<weakref at 0x000000010ECE0EF8; to 'DataFrame' at 0x000000010DCDE048>
>>> hex(id(mydata94_98))
'0x10dcde048'
Run Code Online (Sandbox Code Playgroud)
此.rename操作会inplace = True触发SettingWithCopy警告,我不确定为什么会出现这种情况。我的印象是,这inplace = True意味着您没有创建被操作的底层数据帧的副本,而是正在操作……就地……
kidsSingleHeads.rename( columns = { "Gender":"GenderChild",
"Age":"AgeChild",
"EducationYears":"EducationYearsChild" }, inplace = True )
pandas.core.common.SettingWithCopyError:
A value is trying to be set on a copy of a slice from a DataFrame
Run Code Online (Sandbox Code Playgroud)
我一直在努力理解视图和副本之间的区别。据我所知,对数据框视图的设置会修改它,而对它的副本进行设置则不会。
摘自 Wes McKinney 的《Python 数据分析》第 12 页。114
索引 DataFrame …
如果我使用Visual Studio IDE的Python工具在Visual Studio的python中以交互模式执行命令,我希望能够通过一组击键来中断该命令,例如在MATLAB中使用CTRL + C.
我训练了一个svm模型.我想测试它,但我在predict()函数中遇到错误.为简单起见,我在这里将测试和训练数据拆分为非随机70/30分割.
library(e1071)
train <- mydata[1:9731, ]
test <- mydata[(9731+1):13901, ]
mysvm <- svm(formula = outcome ~ BW + GA, data = train, type = "C-classification", kernel = "linear", gamma = 1, cost = 2)
predict(mysvm, newdata=test)
Run Code Online (Sandbox Code Playgroud)
错误消息来自predict()是:
Error in names(ret2) <- rowns :
'names' attribute [4170] must be the same length as the vector [4106]
Run Code Online (Sandbox Code Playgroud)
数据的头部看起来像......
> head(mydata)
BW outcome GA
1 2.00 Survived 34
2 2.81 Survived 41
3 1.85 Survived 35
4 2.23 Survived 32
5 1.21 Survived …Run Code Online (Sandbox Code Playgroud)