【问题标题】:Is there a way to read Stata labels in python?有没有办法在 python 中读取 Stata 标签?
【发布时间】:2017-06-28 18:08:14
【问题描述】:
df = pd.read_stata('file.dta')
for cols in df.columns.values:
    name = cols.lower()
    type = df[cols].dtype
    #label = ...

我需要在 python 中为每一列获取标签/描述。

【问题讨论】:

    标签: python pandas stata


    【解决方案1】:

    在 Pandas 0.22 中,您还可以通过创建迭代器来访问它。 IE。

    import pandas as pd
    itr = pd.read_stata('file.dta', iterator=True)
    itr.variable_labels()
    

    这将返回一个字典,其中键是变量名,值是变量标签。我认为这比pd.io.stata.StataReader 更容易记住。

    【讨论】:

      【解决方案2】:

      这将返回一个标签字典:

      >>> pd.io.stata.StataReader('file.dta').variable_labels()
      {'x': 'x label', 'y': 'y label'}
      

      【讨论】:

      • reader 在该答案中未定义,因此不清楚它来自何处。从你的回答看来它来自 pd.io 所以这对我来说意味着新的东西。 :)
      • 啊,是的,好点子!谢谢!我认为这只是一个错字(现在已修复,顺便说一句),但我很高兴在任何情况下都增加了一些有价值的东西。
      【解决方案3】:

      我知道了

      reader = pd.io.stata.StataReader('file.dta')
      header = reader.variable_labels()
      for var in header:
          name = var
          label = header[name]
      

      【讨论】:

      • 我正要评论错字,但你已修正。我不确定你想用for 循环做什么(?)因为“标题”已经是一本字典。顺便说一句,回想起来,我本来只是将我的回答作为评论,但它得到了两个快速的支持,所以我决定离开它。
      • 是的,我将它逐行写入 csv 文件中,然后对其进行更多操作。但是是的..感谢您的意见! :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多