TypeError:“ float”类型的参数不可迭代

贾斯普雷特·考尔·巴桑

我是python和TensorFlow的新手。我最近开始理解和执行TensorFlow示例,并遇到了以下示例:https : //www.tensorflow.org/versions/r0.10/tutorials/wide_and_deep/index.html

我收到错误TypeError:类型为'float'的参数不是可迭代的,并且我认为问题在于以下代码行:

df_train [LABEL_COLUMN] =(df_train ['income_bracket']。apply(lambda x:'> 50K'in x))。astype(int)

(income_bracket是普查数据集的标签列,其中“> 50K”是可能的标签值之一,另一个标签为“ = <50K”。该数据集被读入df_train。文档中提供了有关进行上述操作的原因是,“由于该任务是二进制分类问题,因此,我们将构建一个名为“ label”的标签列,如果收入超过5万,则该列的值为1,否则为0。”)

如果有人能解释我到底发生了什么以及我应该如何解决,那将是很棒的。我尝试使用Python2.7和Python3.4,但我不认为问题出在语言的版本上。另外,如果任何人都知道针对TensorFlow和pandas新手的出色教程,请共享链接。

完整程序:

import pandas as pd
import urllib
import tempfile
import tensorflow as tf

gender = tf.contrib.layers.sparse_column_with_keys(column_name="gender", keys=["female", "male"])
race = tf.contrib.layers.sparse_column_with_keys(column_name="race", keys=["Amer-Indian-Eskimo", "Asian-Pac-Islander", "Black", "Other", "White"])
education = tf.contrib.layers.sparse_column_with_hash_bucket("education", hash_bucket_size=1000)
marital_status = tf.contrib.layers.sparse_column_with_hash_bucket("marital_status", hash_bucket_size=100)
relationship = tf.contrib.layers.sparse_column_with_hash_bucket("relationship", hash_bucket_size=100)
workclass = tf.contrib.layers.sparse_column_with_hash_bucket("workclass", hash_bucket_size=100)
occupation = tf.contrib.layers.sparse_column_with_hash_bucket("occupation", hash_bucket_size=1000)
native_country = tf.contrib.layers.sparse_column_with_hash_bucket("native_country", hash_bucket_size=1000)


age = tf.contrib.layers.real_valued_column("age")
age_buckets = tf.contrib.layers.bucketized_column(age, boundaries=[18, 25, 30, 35, 40, 45, 50, 55, 60, 65])
education_num = tf.contrib.layers.real_valued_column("education_num")
capital_gain = tf.contrib.layers.real_valued_column("capital_gain")
capital_loss = tf.contrib.layers.real_valued_column("capital_loss")
hours_per_week = tf.contrib.layers.real_valued_column("hours_per_week")

wide_columns = [gender, native_country, education, occupation, workclass, marital_status, relationship, age_buckets, tf.contrib.layers.crossed_column([education, occupation], hash_bucket_size=int(1e4)), tf.contrib.layers.crossed_column([native_country, occupation], hash_bucket_size=int(1e4)), tf.contrib.layers.crossed_column([age_buckets, race, occupation], hash_bucket_size=int(1e6))]

deep_columns = [
  tf.contrib.layers.embedding_column(workclass, dimension=8),
  tf.contrib.layers.embedding_column(education, dimension=8),
  tf.contrib.layers.embedding_column(marital_status, dimension=8),
  tf.contrib.layers.embedding_column(gender, dimension=8),
  tf.contrib.layers.embedding_column(relationship, dimension=8),
  tf.contrib.layers.embedding_column(race, dimension=8),
  tf.contrib.layers.embedding_column(native_country, dimension=8),
  tf.contrib.layers.embedding_column(occupation, dimension=8),
  age, education_num, capital_gain, capital_loss, hours_per_week]

model_dir = tempfile.mkdtemp()
m = tf.contrib.learn.DNNLinearCombinedClassifier(
    model_dir=model_dir,
    linear_feature_columns=wide_columns,
    dnn_feature_columns=deep_columns,
    dnn_hidden_units=[100, 50])


COLUMNS = ["age", "workclass", "fnlwgt", "education", "education_num",
  "marital_status", "occupation", "relationship", "race", "gender",
  "capital_gain", "capital_loss", "hours_per_week", "native_country", "income_bracket"]
LABEL_COLUMN = 'label'
CATEGORICAL_COLUMNS = ["workclass", "education", "marital_status", "occupation", "relationship", "race", "gender", "native_country"]
CONTINUOUS_COLUMNS = ["age", "education_num", "capital_gain", "capital_loss", "hours_per_week"]


train_file = tempfile.NamedTemporaryFile()
test_file = tempfile.NamedTemporaryFile()
urllib.urlretrieve("https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data", train_file.name)
urllib.urlretrieve("https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.test", test_file.name)


df_train = pd.read_csv(train_file, names=COLUMNS, skipinitialspace=True)
df_test = pd.read_csv(test_file, names=COLUMNS, skipinitialspace=True, skiprows=1)
df_train[LABEL_COLUMN] = (df_train['income_bracket'].apply(lambda x: '>50K' in x)).astype(int)
df_test[LABEL_COLUMN] = (df_test['income_bracket'].apply(lambda x: '>50K' in x)).astype(int)


def input_fn(df):

  continuous_cols = {k: tf.constant(df[k].values)
                     for k in CONTINUOUS_COLUMNS}

  categorical_cols = {k: tf.SparseTensor(
      indices=[[i, 0] for i in range(df[k].size)],
      values=df[k].values,
      shape=[df[k].size, 1])
                      for k in CATEGORICAL_COLUMNS}

  feature_cols = dict(continuous_cols.items() + categorical_cols.items())
  label = tf.constant(df[LABEL_COLUMN].values)
  return feature_cols, label


def train_input_fn():
    return input_fn(df_train)


def eval_input_fn():
    return input_fn(df_test)

m.fit(input_fn=train_input_fn, steps=200)
results = m.evaluate(input_fn=eval_input_fn, steps=1)
for key in sorted(results):
    print("%s: %s" % (key, results[key]))

谢谢

PS:错误的完整堆栈跟踪

Traceback (most recent call last):

File "/home/jaspreet/PycharmProjects/TicTacTensorFlow/census.py", line 73, in <module>
    df_train[LABEL_COLUMN] = (df_train['income_bracket'].apply(lambda x: '>50K' in x)).astype(int)

File "/usr/lib/python2.7/dist-packages/pandas/core/series.py", line 2023, in apply
    mapped = lib.map_infer(values, f, convert=convert_dtype)

File "inference.pyx", line 920, in pandas.lib.map_infer (pandas/lib.c:44780)

File "/home/jaspreet/PycharmProjects/TicTacTensorFlow/census.py", line 73, in <lambda>
    df_train[LABEL_COLUMN] = (df_train['income_bracket'].apply(lambda x: '>50K' in x)).astype(int)

TypeError: argument of type 'float' is not iterable
贾斯普雷特·考尔·巴桑

该程序可逐字处理最新版本的熊猫,即0.18.1。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TypeError:“WordListCorpusReader”类型的参数不可迭代

Tkinter TypeError:类型'StringVar'的参数不可迭代

ElementTree:TypeError:“ Sentence”类型的参数不可迭代

TypeError:“ Item”类型的参数不可迭代

TypeError:“ Mock”类型的参数不可迭代

Flask TypeError:“ NoneType”类型的参数不可迭代

TypeError:“ WindowsPath”类型的参数不可迭代

TypeError:“函数”类型的参数不可迭代

为什么我收到TypeError“类型'类型'的参数不可迭代”?

Python 3.4 TypeError:“ int”类型的参数不可迭代

Python字典:TypeError:“NoneType”类型的参数不可迭代

如何解决“'int'类型的TypeError参数不可迭代。”

获取 TypeError:“int”类型的参数在 Python 中不可迭代

TypeError:“ float”类型的对象没有len()&TypeError:“ float”对象不可迭代

Python:TypeError:“ float”对象不可迭代

pyspark: TypeError: 'float' 对象不可迭代

DRF TypeError“类型”对象不可迭代

:TypeError:“函数”类型的参数不可迭代”,但在单独测试时有效

如何在Python中修复'TypeError:类型'function'的参数不可迭代'

Python-使用Osmnx包获取“ TypeError:类型'CRS'的参数不可迭代”

将Django应用程序部署到Heroku时出错-TypeError:类型'PosixPath'的参数不可迭代

为什么 Django AssertFormError 会抛出 TypeError: 'property' 类型的参数不可迭代?

“TypeError:'NoneType' 类型的参数不可迭代”当我尝试进行网络抓取时

TypeError:使用sum时,'float'对象不可迭代

如何解决TypeError:“ float”对象不可迭代

TypeError:'numpy.float64'对象不可迭代Keras

TypeError:我的代码中的Float对象不可迭代

列表推導:TypeError: 'float' 對像不可迭代

TypeError:json不可迭代