如何通过pandas导入.data并描述数据



我是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()是理解数据中有哪些变量的正确方法吗?

使用pandas.io.stata.StataReader.datastata文件中读取已在pandas 0.18.1版本中弃用,因此您将获得该警告。

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

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

有时这对我来说不起作用,特别是当数据集很大的时候。所以我在这里建议的是两个步骤(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")

最新更新