python - 如何处理用 Pandas 导入的数据?

标签 python variables pandas error-handling

我正在使用 pandas 导入一些 .dta 文件,并使用 numpy/sklearn 对集合进行一些统计。我将数据称为 sample 我执行以下操作:

#   import neccessary packages
import pandas as pd
import numpy as np
import sklearn as skl

#   import data and give a little overview (col = var1-var5, 20 rows)
sample = pd.read_stata('sample_data.dta')
print('variables in dataset')
print(sample.dtypes)
print('first 5 rows and all cols')
print(sample[0:5])

# generate a new var
var6 = sample.var1/sample.var3

如果我直接通过变量名寻址变量(var1sample.var1),我会收到错误消息。我发现总是包含 sample. 有点乏味。有没有什么好的方法可以直接通过名称调用变量?

最佳答案

请看这个人为的例子。通常我不喜欢搞乱 locals()globals() 但我没有看到更简洁的方法:

class A:
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

obj = A()

locals().update(obj.__dict__)

print(var1)
print(var2)
>> 1
   2

由于您使用的是数据框,因此您必须遍历 df.columns 而不是 __dict__。您的代码将类似于:

import pandas as pd

df = pd.DataFrame({'a':[1]})

for col in df.columns:
     locals().update({col: df[col]})

print(a)
>> 0    1
   Name: a, dtype: int64

这样做时你应该非常小心,因为这会覆盖你可能已经用相同名称定义的任何变量,例如:

import pandas as pd

a = 7

print(a)
>> 7

df = pd.DataFrame({'a':[1]})

for col in df.columns:
     locals().update({col: df[col]})

print(a)
>> 0    1
   Name: a, dtype: int64

关于python - 如何处理用 Pandas 导入的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39073123/

相关文章:

variables - 获取 Sphinx 模板中的变量

python - Pandas 中令人困惑的关键错误

python - Pandas 中的嵌套分组

javascript - Jquery 与 Django

python - BeautifulSoup 看不到 element ,即使它存在于页面上

python - @asyncio.coroutine 与 async def

c - c 中的 void 错误消息

python - 进行多条件求和的循环

javascript - 将 JS 值传递给 HTML 以创建 anchor 标记

python - 绘制前 10 名与所有其他值的对比图