-3
나는 Cloudera 5.2 VM 및 pandas와 협력합니다. 0.18.0 kmeans를 데이터 프레임에 적용하고 싶습니다. 하지만 str 열이 있습니다.팬더 카테고리 속성으로 작업하는 방법
내 dataframe은 내가 kmeans을 실행하면
adClicksPerTime.head(n=5)
Out[50]:
timestamp adCategory userId totalAdClicks
0 2016-05-26 15:00:00 automotive 355 1
1 2016-05-26 15:00:00 clothing 1027 1
2 2016-05-26 15:00:00 computers 1821 1
3 2016-05-26 15:00:00 computers 2139 1
4 2016-05-26 15:00:00 electronics 253 1
for col in adClicksPerTime:
print(col)
print(type(adClicksPerTime[col][1]))
timestamp
<class 'pandas.tslib.Timestamp'>
adCategory
<class 'str'>
userId
<class 'numpy.int64'>
totalAdClicks
<class 'numpy.int64'>
나는 숫자 코드
adClicksPerTime.adCategory = pd.Categorical.from_array(adClicksPerTime.adCategory)
adClicksPerTime.head(n=5)
Out[54]:
timestamp adCategory userId totalAdClicks
0 2016-05-26 15:00:00 automotive 355 1
1 2016-05-26 15:00:00 clothing 1027 1
2 2016-05-26 15:00:00 computers 1821 1
3 2016-05-26 15:00:00 computers 2139 1
4 2016-05-26 15:00:00 electronics 253 1
for col in adClicksPerTime:
print(col)
print(type(adClicksPerTime[col][1]))
timestamp
<class 'pandas.tslib.Timestamp'>
adCategory
<class 'str'>
userId
<class 'numpy.int64'>
totalAdClicks
<class 'numpy.int64'>
을 할당 할 범주 유형과 후 내 문자열을 변환하려고
ValueError: could not convert string to float: 'automotive'
오류를 얻을
이 str 필드에 kmeans를 적용하려면 어떻게해야합니까?
k-means는 ** 연속 ** 변수에 대해서만 설계되었습니다. 이런 종류의 데이터에는 사용하지 마십시오! –