首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Stata 17调用Python时出现的问题

从Stata 17调用Python时出现的问题
EN

Stack Overflow用户
提问于 2022-03-03 09:11:48
回答 1查看 112关注 0票数 1

下面的第一段代码在python中运行时没有问题,但是当在Stata do文件中使用相同的行时,会出现一条提示Python编码错误的消息。知道是什么导致了这个问题吗?(我在Windows上使用Stata 17。)

代码语言:javascript
复制
# PYTHON CODE: 
import pandas as pd
df = pd.read_stata('data.dta')  
cut_bins = [-5, -4, -3, -2, -1, 0, 1, 2, 3]
df['cut_bins'] = pd.cut(df['v'], bins=cut_bins)
代码语言:javascript
复制
* STATA CODE: 
python 
import pandas as pd
from sfi import Data
cut_bins = [-5, -4, -3, -2, -1, 0, 1, 2, 3]
df = Data.get('id bin v')
df["cut_bins"] = pd.cut(df['v'], bins=cut_bins)
end 

在do文件中运行Stata代码时,将出现以下消息:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not str

这意味着Python编码错误,但是由于相同的代码行在Python中运行时没有错误,所以Stata可能也有问题。

EN

回答 1

Stack Overflow用户

发布于 2022-03-05 23:01:20

df = Data.get('id bin v')将在列表列表中返回变量idbinv。ie df[0]保存idbinv的第一行值。

尝尝这个

代码语言:javascript
复制
* STATA CODE: 
python 
import pandas as pd
from sfi import Data
cut_bins = range(-5,4)
df = pd.DataFrame(Data.getAsDict('id bin v'))
df["cut_bins"] = pd.cut(df['v'], bins=cut_bins)
end

现在,df.head()将为 v):生产(使用我的假数据)。

代码语言:javascript
复制
    id  bin         v  cut_bins
0  1.0  1.0  2.535117    (2, 3]
1  2.0  2.0  0.161955    (0, 1]
2  3.0  3.0 -0.397220   (-1, 0]
3  4.0  4.0  0.003145    (0, 1]
4  5.0  5.0 -2.985772  (-3, -2]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71334602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档