我是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.data
从stata
文件中读取已在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.xlsx
和myfile.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")