Как я могу назначить строки в столбце dataframe, используя python [duplicate]

Сделав все, упомянутое здесь: http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could- not-open-a-connection-to-sql-server-microsoft-sql-server-error / Все еще не работало для меня.

Шаги работали для меня:

Start > Run > cmd > sqlcmd -L

Он предложит вам имя сервера. Убедитесь, что имя этого сервера совпадает с именем, к которому вы пытаетесь подключиться, в поле CONNECT TO SERVER студии управления SQL.

Я сделал эту глупую ошибку, я продолжаю использовать MSSQLSERVER, используя это имя сервера.

Надеюсь, это поможет людям, которые делают глупую ошибку, как я.

Спасибо.

11
задан Gingerbread 13 February 2017 в 05:14
поделиться

6 ответов

Лучший способ сделать это может заключаться в использовании меток-меток библиотеки sklearn.

Что-то вроде этого:

from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit(["paris", "paris", "tokyo", "amsterdam"])
list(le.classes_)
le.transform(["tokyo", "tokyo", "paris"])
list(le.inverse_transform([2, 2, 1]))
10
ответ дан Algor Troy 18 August 2018 в 07:53
поделиться

Простая & amp; элегантный способ сделать то же самое.

cat_list = ['Sun', 'Sun', 'Wed', 'Mon', 'Mon']
encoded_data, mapping_index = pd.Series(cat_list).factorize()

, и все сделано, проверьте ниже

print(encoded_data)
print(mapping_index)
print(mapping_index.get_loc("Mon"))
2
ответ дан Abhishek 18 August 2018 в 07:53
поделиться
  • 1
    В случае, если вы не знаете, какие разные значения поступают в данные, может произойти утечка списка жестко закодированных значений. LabelEncoder (), однако, имеет дело с тем, что происходит. – Himanshu 3 August 2017 в 19:19

Вы можете создать дополнительный словарь с отображением:

from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit(data['name'])
le_name_mapping = dict(zip(le.classes_, le.transform(le.classes_)))
print(le_name_mapping)
{'Tom': 0, 'Nick': 1, 'Kate': 2}
14
ответ дан chinskiy 18 August 2018 в 07:53
поделиться

Сначала сделайте категориальный ряд:

weekdays = pd.Series(['Sun', 'Sun', 'Wed', 'Mon', 'Mon']).astype('category')

Затем проверьте его «категории»:

weekdays.cat.categories.get_loc('Sun')
2
ответ дан John Zwinck 18 August 2018 в 07:53
поделиться

Есть много способов сделать это. Вы можете рассмотреть pd.factorize, sklearn.preprocessing.LabelEncoder и т. Д. Однако в этом конкретном случае у вас есть два варианта, которые вам подойдут лучше:

По вашему собственному методу вы можете добавить категории:

pd.Categorical( df.weekday, [ 
    'Sunday', 'Monday', 'Tuesday', 
    'Wednesday', 'Thursday', 'Friday', 
    'Saturday']  ).labels

Другим вариантом является сопоставление значений непосредственно с помощью dict

df.weekday.map({
    'Sunday': 0,
    'Monday': 1,
     # ... and so on. You get the idea ...
})
2
ответ дан ssm 18 August 2018 в 07:53
поделиться

Если у вас есть числовые и категориальные данные обоих типов в фрейме данных, вы можете использовать: здесь X - это мой файловый фрейм, имеющий категориальные и числовые обе переменные

from sklearn import preprocessing
le = preprocessing.LabelEncoder()

for i in range(0,X.shape[1]):
    if X.dtypes[i]=='object':
        X[X.columns[i]] = le.fit_transform(X[X.columns[i]])

Или вы можете попробовать следующее:

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
data = data.apply(le.fit_transform)

Примечание: этот метод хорош, если вы не заинтересованы в его преобразовании.

1
ответ дан Vikas Gupta 18 August 2018 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: