【问题标题】:what’s the difference between df[‘’] and df[[‘’]] [duplicate]df[''] 和 df[['']] 有什么区别 [重复]
【发布时间】:2021-11-01 07:13:14
【问题描述】:

我写了一个函数来显示肘部来选择 Kmeans 的 K 的最佳值。

from sklearn.cluster import KMeans
def show_elbow(df):
    distance_list=[]
    K = range(1,9)
    for k in K:
        kmeams=KMeans(n_cluster=k,max_iter=100)
        kmeans=KMeans.fit(df)
        distance_list.append(kmeans.inertia_)
    plt.plot(K,distance_list,'bx-')

当我使用这个函数时,df[''] 会导致错误,而df[['']] 不会。不知道是什么原因。

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

区别:

  • df['a'] 给出一个Series 对象,它是一列,例如:

    >>> df['a']
    0    1
    1    2
    2    3
    Name: a, dtype: int64
    >>> 
    
  • df[['a']] 选择多列,但在这种情况下,列表中只有一列,因此保留DataFrame 类型:

    >>> df[['a']]
       a
    0  1
    1  2
    2  3
    >>> 
    

【讨论】:

  • 好的,知道了。如果打印Series,它不会显示列名,而Dataframe会打印列值,这样我就可以判断是df还是Series,对吗?
【解决方案2】:

当您编写df["] 时,您基本上是在访问一组数值,但是当您使用df[["]] 时,您将获得一个与您的代码兼容的DataFrame 对象。

【讨论】:

    【解决方案3】:

    返回不同的类型:

    type(df['a'])
    Out[1]: pandas.core.series.Series
    
    type(df[['a']])
    Out[2]: pandas.core.frame.DataFrame
    

    【讨论】:

      猜你喜欢
      • 2020-05-26
      • 1970-01-01
      • 2011-03-23
      • 2022-01-01
      • 2020-08-13
      • 1970-01-01
      • 2018-10-22
      • 1970-01-01
      • 2022-11-21
      相关资源
      最近更新 更多