将Series转换为DataFrame
作者:互联网
我创建了一个数据框“ x”
我想创建另一个数据框y,该数据框y由数据框x的特征’wheat_type’的值组成
所以我执行了代码
y=X.loc[:, 'wheat_type']
当我运行以下命令时
y['wheat_type'] = y.wheat_type("category").cat.codes
我收到以下错误
‘Series’ object has no attribute ‘wheat_type’
在执行类型(X)时,我得到了
<class 'pandas.core.frame.DataFrame'>
在执行类型(y)时,我得到了
<class 'pandas.core.series.Series'>
有没有可能将y转换为数据框.如果没有,请告诉我如何从x创建所需的数据框y.
解决方法:
X = pd.DataFrame({'wheat_type':[5,7,3]})
print (X)
wheat_type
0 5
1 7
2 3
#create DataFrame by subset
y=X[['wheat_type']]
#cast to category and get codes
y['wheat_type'] = y.wheat_type.astype("category").cat.codes
print (y)
wheat_type
0 1
1 2
2 0
如果有多个列,最好使用指向Ami
的to_frame:
X = pd.DataFrame({'wheat_type':[5,7,3], 'z':[4,7,9]})
print (X)
wheat_type z
0 5 4
1 7 7
2 3 9
y = X['wheat_type'].to_frame()
#cast to category and get codes
y['wheat_type'] = y.wheat_type.astype("category").cat.codes
print (y)
wheat_type
0 1
1 2
2 0
创建新DataFrame的另一种解决方案是按子集和copy
:
y = X[['wheat_type']].copy()
标签:series,categorical-data,pandas,dataframe,python 来源: https://codeday.me/bug/20191118/2027094.html