转换 Pandas 数据框的 dtype
Convert Pandas dtype of dataframe
我有一个 Pandas 数据帧存储为 'object',但我需要将数据帧结构更改为 'int'因为 'object' dtype 不会在 kmeans() 函数中处理 numpy library
我已根据此示例设法将数据帧的每一列转换为 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 数据帧上有什么问题,如何解决?
谢谢
将其保存为值,而不是对象。根据这个 post
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
我有一个 Pandas 数据帧存储为 'object',但我需要将数据帧结构更改为 'int'因为 'object' dtype 不会在 kmeans() 函数中处理 numpy library
我已根据此示例设法将数据帧的每一列转换为 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 数据帧上有什么问题,如何解决? 谢谢
将其保存为值,而不是对象。根据这个 post 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