【问题标题】:Python vs Stata in data preparation数据准备中的 Python 与 Stata
【发布时间】:2020-05-25 13:28:17
【问题描述】:

我知道这不太可能,但我不明白为什么 Python 在简单操作后输出略有不同的数据集,我认为这与我在 Stata 中所做的相同。 所以,Stata:

use "filename", clear  
drop if varname < 1500  
sum  

STATA(原始数据)

观察:610
平均值:1339.482
标准:17.27477
最低:1304
最大值:1368

检查缺失 (mdesc varname)

缺失:10953
总计:11563
缺失百分比:94.72

STATA(在drop if varname &lt; 1500之后):

varname |obs:389 mean:1350.599 Std.Dev.:9.564949 Min: 1333 最大: 1368
类型:浮动

与此同时,Python:

import pandas as pd  
df = pd.read_stata("filename.dta", convert_missing = False)  
df = df[df.varname<1500]  
df.describe()  

PYTHON(原始数据:df=pd.read_stata("filename.dta"):varname
计数:610
意思是:1339.481934
标准:17.274755
最小:1304.000000
25%:1326.000000
50%:1341.000000
75%:1353.000000
最大值:1368.000000

df.isnull().sum()
变量名 10953
因此,Stata 和 Python 中原始数据中的缺失数量相同,但删除后我得到了两个不同的数据集。

PYTHON,在df = df[df.varname&lt;1500] ## 之后

计数:288.000000
平均值:1325.760376
标准:13.369122
最小:1304.000000
25%:1316.000000
50%:1325.000000
75%:1332.000000
最大值:1365.000000

具体而言,差异在于观察次数。对于某些变量,存在模式差异,即 Stata:11 342 obs,Python:5064 obs(两倍)。对于某些变量,差异没有模式,只是值不同。汇总统计并没有太大的不同,但是不同。 我是 Python 新手,如果确实有可能它对数据的操作与 Stata 不同,您能否分享一下?

编辑:

我发现我输错了,而不是df = df[df.varname&lt;1500],我应该输入df_new = df.drop(df[df.varname&lt; 1500].index)。我不知道有什么区别,但现在我有了我需要的数据集。感谢大家花时间在这里!

【问题讨论】:

  • 老实说,这似乎不太可能。您能否直接在读取数据后和删除后提供varname 的类型和描述性统计信息?我的猜测是 null 值的处理方式不同。
  • 您能否在删除任何观察之前包括计数以验证正在读取的数据是否相同?另外,你能明确检查缺失值吗?
  • df = df[df.varname>1500] ...?
  • @coffeinjunky,看起来数据集是相同的,但是在我使用 df = df[df.varname
  • @tianlinhe,是的,在这个命令之后我得到一个与 stata 不同的数据集,所以这可能是一个不正确的行

标签: python pandas stata


【解决方案1】:

我猜你误解了df[] 子句中布尔运算的行为。

在pandas中,df[statement]里面的语句必须是True,这样才能被选中。

在您的示例中,df = df[df.varname&lt;1500] 将为df.varname&lt;1500 返回True。所以你会得到那些满足df.varname&lt;1500的行,而不是删除它们。

【讨论】:

  • 非常感谢!我弄清楚了我的问题,但没有得到为什么一件事有效而另一件事无效的原因。现在感谢您的解释,我明白了!
  • 我也很高兴为您提供帮助!然后你会接受它作为答案还是赞成它?
  • @tianlinhe,没问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 2014-01-17
相关资源
最近更新 更多