小编Nir*_*van的帖子

在pandas dataframe上使用.replace()方法时,在字典中重叠键

我想使用将旧代码映射到新代码的字典替换数据框列中的某些值.

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)

有更紧凑的方法吗?

python pandas

11
推荐指数
1
解决办法
6153
查看次数

为什么使用 inplace = True 重命名数据框列会触发带有复制警告的设置?

数据框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 …

python pandas

7
推荐指数
1
解决办法
2493
查看次数

键盘中断Visual Studio IDE中的交互式Python

如果我使用Visual Studio IDE的Python工具在Visual Studio的python中以交互模式执行命令,我希望能够通过一组击键来中断该命令,例如在MATLAB中使用CTRL + C.

关于交互模式PTVS文档没有特别提及任何内容.谷歌的搜索结果是空的.

python visual-studio

6
推荐指数
1
解决办法
537
查看次数

svm预测错误

我训练了一个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)

r svm predict

4
推荐指数
1
解决办法
3670
查看次数

标签 统计

python ×3

pandas ×2

predict ×1

r ×1

svm ×1

visual-studio ×1