Skip to main content
 首页 » 编程设计

python之Panda 的双括号索引 [[]]

2025年05月04日17del

<分区>

我一直在学习谷歌的机器学习速成类(class),他们有一个部分有一个练习教你如何使用 pandas 和 tensorflow。一开始他们抓取数据框,紧接着他们抓取“total_rooms”和“median_house_value”的系列。他们使用双括号获取“total_rooms”系列,使用一组括号获取“median_house_value”系列。我通读了 panda 的文档,似乎您需要使用双括号索引到一个系列的唯一原因是一次索引 2 列,即数据 california_housing_dataframe[["median_house_value", "total_rooms"]]。为什么他们使用双括号仅索引数据框中的一列,而稍后使用单括号来做看似相同的事情,这是有原因的吗?

这是我正在谈论的代码。

california_housing_dataframe = pd.read_csv("https://dl.google.com/mlcc/mledu-datasets/california_housing_train.csv", sep=",") 
# Define the input feature: total_rooms. 
my_feature = california_housing_dataframe[["total_rooms"]] 
# Configure a numeric feature column for total_rooms. 
feature_columns = [tf.feature_column.numeric_column("total_rooms")] 
 
targets = california_housing_dataframe["median_house_value"] 

如果您需要更多上下文,这里有更多代码:

california_housing_dataframe = pd.read_csv("https://dl.google.com/mlcc/mledu-datasets/california_housing_train.csv", sep=",") 
 
# Define the input feature: total_rooms. 
my_feature = california_housing_dataframe[["total_rooms"]] 
# Configure a numeric feature column for total_rooms. 
feature_columns = [tf.feature_column.numeric_column("total_rooms")] 
 
targets = california_housing_dataframe["median_house_value"] 
 
def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None): 
    """Trains a linear regression model of one feature. 
 
    Args: 
      features: pandas DataFrame of features 
      targets: pandas DataFrame of targets 
      batch_size: Size of batches to be passed to the model 
      shuffle: True or False. Whether to shuffle the data. 
      num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely 
    Returns: 
      Tuple of (features, labels) for next data batch 
    """ 
 
    # Convert pandas data into a dict of np arrays. 
    features = {key:np.array(value) for key,value in dict(features).items()}                                            
 
    # Construct a dataset, and configure batching/repeating. 
    ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit 
    ds = ds.batch(batch_size).repeat(num_epochs) 
 
    # Shuffle the data, if specified. 
    if shuffle: 
      ds = ds.shuffle(buffer_size=10000) 
 
    # Return the next batch of data. 
    features, labels = ds.make_one_shot_iterator().get_next() 
    return features, labels 
 
prediction_input_fn =lambda: my_input_fn(my_feature, targets, num_epochs=1, shuffle=False) 
 
# Call predict() on the linear_regressor to make predictions. 
predictions = linear_regressor.predict(input_fn=prediction_input_fn) 

如果您需要更多上下文,这里是包含所有代码的练习链接: https://colab.research.google.com/notebooks/mlcc/first_steps_with_tensor_flow.ipynb?utm_source=mlcc&utm_campaign=colab-external&utm_medium=referral&utm_content=firststeps-colab&hl=en