簡體   English   中英

如何編碼 pandas 數據幀列表中的所有標簽?

[英]How to code all labels in list of pandas dataframes?

解析來自 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]

我需要一些 function,它將兩個數據幀中的值“Python”編碼為相同的值。 我怎樣才能做到這一點?

lst1lst2中的名稱是否固定? 以后還會有更多的名字嗎?

如果沒有,您要做的是獲取所有唯一名稱/類別,並適合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'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM