python - 如何编码熊猫数据框列表中的所有标签?
问题描述
从 API 解析 pandas 数据框列表。我需要他们放置 int 自动编码器,它适合具有形状 (100, 36, 18) 的数据
#encoder
input_sig = Input(shape=(num_events, features))
conv1 = Conv1D(32, 3, activation='relu', padding='same')(input_sig)
pool1 = MaxPooling1D(pool_size=2)(conv1)
conv2 = Conv1D(64, 3, activation='relu', padding='same')(pool1)
pool2 = MaxPooling1D(pool_size=2)(conv2)
conv3 = Conv1D(128, 3, activation='relu', padding='same')(pool2)
#decoder
conv4 = Conv1D(128, 3, activation='relu', padding='same')(conv3)
up1 = UpSampling1D(2)(conv4)
conv5 = Conv1D(64, 3, activation='relu', padding='same')(up1)
up2 = UpSampling1D(2)(conv5)
decoded = Conv1D(features, 3, activation='relu', padding='same')(up2)
model= Model(input_sig, decoded)
model.compile(loss='mean_squared_error', optimizer = RMSprop())
model.summary()
X_train, X_test, y_train, y_test = train_test_split(df_2,
df_2,
test_size=0.2,
random_state=50)
所以我需要在我的所有数据框中编码分类参数。但它以不同的值编码!这是非常错误的......例如:
lst1 = {'Name': ['Java', 'Python', 'C', 'C++',
'JavaScript']}
lst2 = {'Name': ['Scala', 'Python', 'C', 'C++',
'JavaScript', 'Node', 'Text']}
dframe1 = pd.DataFrame(lst1)
dframe2 = pd.DataFrame(lst2)
dframe1['Name'] = LabelEncoder().fit_transform(dframe1['Name'])
dframe2['Name'] = LabelEncoder().fit_transform(dframe2['Name'])
asd = [dframe1,dframe2]
我需要一些函数,将两个数据帧中的值“Python”编码为相同的值。我怎样才能做到这一点?
解决方案
名字是固定lst1
的吗?lst2
以后还会有更多的名字吗?
如果没有,您需要做的是获取所有唯一名称/类别,并适合LabelEncoder
. 例如,
names = dframe1['Name'].values.tolist() + dframe2['Name'].values.tolist()
enc = LabelEncoder()
enc.fit(names)
dframe1['Name'] = enc.transform(dframe1['Name'])
dframe2['Name'] = enc.transform(dframe2['Name'])
推荐阅读
- java - 如何在屏幕中心创建一个透明的弯曲透明矩形?
- go - 尽管我使用的是界面,但如何解决导入周期不允许的问题?
- c# - UnitOfWork 与存储库和实体框架
- laravel - Laravel 为急切的加载关系获取排序结果
- elasticsearch - elasticsearch加权随机分布
- java - Java - 复制从数据库中检索到的列表的一部分
- python - 使用 NumPy 数组到 tf.data.Dataset
- javascript - React Native 模态样式
- android - 发生了什么 jar(库)编译版本与应用程序编译版本不同?
- django - 在 Jinja2 模板中使用日期过滤器会引发 TemplateSyntaxError