如何将pandas数据框作为arg传递并进行操作?

时间:2016-01-18 00:30:13

标签: python pandas

我编写了一个函数来获取数据帧并生成数据字典以供以后处理。这似乎很简单,但我得到错误:

AttributeError: 'Index' object has no attribute 'value'

def createDataDict(df, keyname):
""" create a dictionary of dictionaries that looks like this:

        { <License_Number> : {<label>:<labelValue>, <feature1>:<feature1Value>, ...}

    for example:
        { 123456: {'violator': False, Total_Sales': 1000, 'violation_count': 2} , ...}

"""

""" for each row in dataframe, pull off license number for key, 
    take each column name and value and add to dictionary
"""
keys = df[keyname]
for key in keys:
    dict = {}
    for col in reversed(list(df.columns.value)):
        feature_values = {}
        feature_values[col] = df[col] 
        dict[key] = feature_values 

2 个答案:

答案 0 :(得分:0)

您可以尝试使用df.columns代替您撰写的内容df.columns.value

还有几件事需要注意......

  1. 字典未订购。因此,reversed
  2. 是没有意义的
  3. 如果您需要维护订单,则需要Python中的OrderedDict
  4. 如果您已经拥有要转换的列,则无需编写函数。您可以这样做:dict(df[keyname])。 (我会打电话给keyname keynames,但那就是我。你可以随意打电话。)

答案 1 :(得分:0)

因为你确实有类型错误。您应该访问df.columns.values而不是df.columns.value