【问题标题】:Convert Pandas dtype of dataframe转换数据框的 Pandas dtype
【发布时间】:2015-05-03 06:48:28
【问题描述】:

我有一个 Pandas 数据框,它存储为“对象”,但我需要将数据框结构更改为“int”,因为“对象”dtype 不会在 kmeans() numpy 库的函数

我已经设法将数据帧的每一列转换为 float64,基于此示例 Pandas: change data type of columns,但我无法将整个内容更改为其他任何内容。

 #create subset of user variables
 user.posts = user.posts.astype('int')
 user.views = user.views.astype('int')
 user.kudos = user.kudos.astype('int')

 Y = user[['posts','views','kudos']]
 #convert dataframe into float
 X.convert_objects(convert_numeric=True).dtypes

Out[205]:
 posts    float64
 views    float64
 kudos    float64
 dtype: object

这会在我尝试运行时导致问题

K = range(1,10)

# scipy.cluster.vq.kmeans
KM = [kmeans(X,k) for k in K] # apply kmeans 1 to 10

我得到了错误

  --->KM = [kmeans(X,k) for k in K] # apply kmeans 1 to 10
  ^

  AttributeError: 'DataFrame' object has no attribute 'dtype'

kmeans 对 K 或 X 数据帧有什么问题,如何解决? 谢谢

【问题讨论】:

  • 已答复! user.posts = user.posts.astype('float') user.views = user.views.astype('float') user.kudos = user.kudos.astype('float') Y = user[['posts' ,'views','kudos']].values

标签: python numpy pandas k-means


【解决方案1】:

将其保存为值,而不是对象。根据这篇文章 How to convert a pandas DataFrame subset of columns AND rows into a numpy array?

user.posts = user.posts.astype('float')
user.views = user.views.astype('float')
user.kudos = user.kudos.astype('float')

Y = user[['posts','views','kudos']].values

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-06
    • 2012-10-15
    • 1970-01-01
    • 2020-10-14
    • 2023-01-15
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多