【问题标题】:How to import .dta via pandas and describe data?如何通过 pandas 导入 .dta 并描述数据?
【发布时间】:2016-12-28 03:08:30
【问题描述】:

我是 python 新手,遇到一个简单的问题。第一步,我想加载一些我在 Stata 中创建的示例数据。在第二步中,我想在 python 中描述数据——也就是说,我想要一个导入的变量名称的列表。到目前为止,我已经这样做了:

from pandas.io.stata import StataReader

reader = StataReader('sample_data.dta')
data = reader.data()

dir()

我收到以下错误:

anaconda/lib/python3.5/site-packages/pandas/io/stata.py:1375: UserWarning: 'data' is deprecated, use 'read' instead
  warnings.warn("'data' is deprecated, use 'read' instead")

这是什么意思,我该如何解决这个问题?而且,dir() 是了解我在数据中有哪些变量的正确方法吗?

【问题讨论】:

    标签: python-3.x pandas import error-handling stata


    【解决方案1】:

    使用pandas.io.stata.StataReader.data 读取stata 文件在pandas 0.18.1 版本中已被弃用,因此您会收到该警告。

    相反,您必须使用pandas.read_stata 来读取文件,如下所示:

    df = pd.read_stata('sample_data.dta')
    df.dtypes                                        ## Return the dtypes in this object
    

    【讨论】:

    • 感谢我使用了import pandas 和您建议的命令。但是,df.dtyps 不返回数据类型。关于原因的任何提示?
    • 您必须在其前面添加print 语句。
    • 完美,工作!谢谢!我希望,我现在可以使用 vars。我可以简单地通过变量名称调用变量还是必须先指定它们?
    • 如果您指的是列,您可以通过df['column name'] 访问它们。
    【解决方案2】:

    有时这对我不起作用,尤其是当数据集很大时。所以我在这里建议的是 2 个步骤(Stata 和 Python)

    在Stata中编写以下命令:

    export excel Cevdet.xlsx, firstrow(variables)
    

    要复制变量标签,请编写以下内容

    describe, replace
        list
        export excel using myfile.xlsx, replace first(var)
    restore
    

    这将为您生成两个文件 Cevdet.xlsxmyfile.xlsx

    现在你转到你的 jupyter 笔记本

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    df = pd.read_excel('Cevdet.xlsx')
    

    这将允许您将两个文件读入 jupyter (python 3)

    我的建议是保存这个数据文件(特别是如果它很大)

    df.to_pickle('Cevdet')
    

    下次打开 jupyter 时可以直接运行

    df=pd.read_pickle("Cevdet")
    

    【讨论】:

      猜你喜欢
      • 2021-12-05
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多