4
У меня есть dataframe 'ДФ', как это -Сохраняя значения NaN после get_dummies в панд
Id v1 v2
0 A 0.23
1 B 0.65
2 NaN 0.87
Если я использую
df1 = get_dummies(df)
df1
Я получаю
Id v1_A v1_B v2
0 1 0 0.23
1 0 1 0.65
2 0 0 0.87 .
Как я могу получить эффективно?
Id v1_A v1_B v2
0 1 0 0.23
1 0 1 0.65
2 NaN NaN 0.87 .
Я использовал это на начальном этапе, но это занимает слишком много времени
import numpy as np
dfv1 = df[[v1]] #Slicing the v1 column
dfs = get_dummies(dfv1)
dfsum = dfs.apply(np.sum, axis=1) #Calculating row by row sum of dfs
for i in range(dfs.size): #Iterating over the entire dataframe
if dfsum.iloc[i]==0: #and if the sum is zero for some 'i'
dfs.iloc[i][:]==np.nan #changing corresponding row to NaN
del df['v1'] #Deleting original column
df = pandas.concat([df, dfs], axis=1) #Appending the new one
Я использую Python 3.5.1 на Jupyter и панды 0,18. Благодарю.
Спасибо, метод 1 работает для меня. Любые подсказки, как я мог бы расширить его для аналогичного фреймворка данных со многими столбцами, например, v1? –