我正在学习不同的方法来将分类变量转换为机器学习分类器的数字.我遇到了这个pd.get_dummies
方法,sklearn.preprocessing.OneHotEncoder()
我想看看它们在性能和使用方面有何不同.
我找到了一个关于如何OneHotEnocder()
在https://xgdgsc.wordpress.com/2015/03/20/note-on-using-onehotencoder-in-scikit-learn-to-work-on-categorical-features/上使用的教程,因为该sklearn
文件并没有这个功能也很有帮助.我有一种感觉,我没有正确地做到这一点......但是
有人可以解释使用pd.dummies
过的优点和缺点,sklearn.preprocessing.OneHotEncoder()
反之亦然吗?我知道这OneHotEncoder()
给你一个稀疏矩阵但除此之外我不确定它是如何使用的,以及该pandas
方法的好处是什么.我用它效率不高吗?
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
sns.set()
%matplotlib inline
#Iris Plot
iris = load_iris()
n_samples, m_features = iris.data.shape
#Load Data
X, y = iris.data, iris.target
D_target_dummy = dict(zip(np.arange(iris.target_names.shape[0]), iris.target_names))
DF_data = pd.DataFrame(X,columns=iris.feature_names)
DF_data["target"] = pd.Series(y).map(D_target_dummy)
#sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) \
#0 5.1 3.5 1.4 …
Run Code Online (Sandbox Code Playgroud) Jupyter Notebooks 中有一个选项,您可以在其中选择一些单元格,然后按 F,这会打开查找和替换功能。
此快捷方式在 Jupyter Lab 中不起作用。它不在命令列表中,也不在编辑菜单中(只有查找 -- 和查找下一个和查找上一个)。我也找不到全局(不特定于单元格选择)查找和替换功能。
有这个功能吗?我在互联网上发现了它的旧提及——它被删除了吗?我正在使用 Jupyter Lab 1.2.3 版。
我有一组在某些元素上"重叠"的数组.这是一个涉及3个字符数组的示例图片:
array0?
'A' ?array2
array1?'B' 'D' 'E'
'C' 'F'
Run Code Online (Sandbox Code Playgroud)
重要的是对数组的更改应该尊重这种结构.因此,例如,如果我将array0中的'B'更改为'X',则array1中的'B'也应更改为'X'.
我的问题是在Python中实现这个的好方法是什么?
到目前为止,我想到了两件事:
一,我可以制作一个定制的类,其实例包含一个完全不同的列表,以及它所具有的任何重叠的信息,并适当地实现更新方法,以便对重叠的其他列表重复列表的任何更改.这似乎有点过分,并涉及重复数据.
二,我可以通过使用像这样的单例列表来做到这一点:
data = [['A'], ['B'], ['C'], ['D'], ['E'], ['F']]
array0 = [data[0], data[1], data[2]]
array1 = [data[1], data[3], data[4]]
array2 = [data[4], data[5]]
for array in array0, array1, array2:
print(array)
>>> [['A'], ['B'], ['C']]
>>> [['B'], ['D'], ['E']]
>>> [['E'], ['F']]
array0[1][0] = 'X'
for array in array0, array1, array2:
print(array)
>>> [['A'], ['X'], ['C']]
>>> [['X'], ['D'], ['E']]
>>> [['E'], ['F']]
Run Code Online (Sandbox Code Playgroud)
但我觉得这可能是hacky而不是最好的方式.谢谢你的任何建议.
我有这个熊猫数据帧:
df = pd.DataFrame(
data=[
['yes', 'no', np.nan],
['no', 'yes', 'no'],
[np.nan, 'yes', 'yes'],
['no', 'no', 'no']
],
index=pd.Index(['xyz_1', 'xyz_2', 'xyz_3', 'xyz_4'], name='ID'),
columns=['class1', 'class2', 'class3']
)
print(df)
Out:
ID class1 class2 class3
xyz_1 yes no NaN
xyz_2 no yes no
xyz_3 NaN yes yes
xyz_4 no no no
Run Code Online (Sandbox Code Playgroud)
我想获得每行类列中“是”和“否”的频率,并有一个新的数据框,如下所示:
ID yes no nan
xyz_1 1 1 1
xyz_2 1 2 0
xyz_3 2 0 1
xyz_4 0 3 0
Run Code Online (Sandbox Code Playgroud)
我看着这个问题,但我不想要总和,而是计数。
有任何想法吗?
我有两个数据帧,包含相同对象(人)不同方面(左脚、右脚)的相同信息(长度、宽度)。
import pandas as pd
left_feet = pd.DataFrame(
data={
"Length": [20, 30, 25],
"Width": [8, 10, 9]},
index=[0, 1, 2])
right_feet = pd.DataFrame(
data={
"Length": [24, 30],
"Width": [8, 10]},
index=[2, 1])
print(left_feet)
Length Width
0 20 8
1 30 10
2 25 9
print(right_feet)
Length Width
2 24 8
1 30 10
Run Code Online (Sandbox Code Playgroud)
我想将这些合并到一个 DataFrame 中,所以我这样做:
feet = pd.merge(left_feet, right_feet,
left_index=True, right_index=True,
suffixes=["_left", "_right"])
print(feet)
Length_left Width_left Length_right Width_right
1 30 10 30 10
2 25 9 24 8
Run Code Online (Sandbox Code Playgroud)
然而,使用后缀很麻烦。我希望这些列是一个 …
如何在 Visual Studio Code 中查看 Jupyter Notebook git 差异?
一些消息来源似乎表明此功能现在可用,但我只看到原始文件的差异。 https://code.visualstudio.com/updates/v1_49#_notebooks
我使用的是最新的 Visual Studio Code 版本 1.62.3。我正在使用 Python 扩展和“本机笔记本”。我不确定是否需要添加notebook.diff.enablePreview: true
,settings.json
但无论如何,它没有任何效果。
更新:当我在源代码管理侧栏中的笔记本上选择“显示更改”时,我可以看到可读的差异。当我在 Git Graph 中的特定提交处的笔记本上选择“Click to View Diff”时,就会出现问题。也许这是一个 Git Graph 问题——最好的解决方法是什么?
我注意到tf.keras.Model
s 有两组相似的属性:
weights
, variables
trainable_weights
, trainable_variables
non_trainable_weights
,non_trainable_variables
还有一些方法:
add_weight
,add_variable
在我看过的模型中,属性对的值是相同的,并且是您所期望的(适当的tf.Variable
s 集合)。
所以我的问题是:两者有什么区别?在概念上有什么区别,什么时候应该使用其中之一?
这是 TensorFlow 2.3.1。
假设我们有一个DataFrame df
df = pd.DataFrame({
"Id": [1, 2],
"Value": [2, 5]
})
df
Id Value
0 1 2
1 2 5
Run Code Online (Sandbox Code Playgroud)
还有一些函数f
需要一个元素df
并返回一个DataFrame。
def f(value):
return pd.DataFrame({"A": range(10, 10 + value), "B": range(20, 20 + value)})
f(2)
A B
0 10 20
1 11 21
Run Code Online (Sandbox Code Playgroud)
我们希望将应用于f
中的每个元素df["Value"]
,并将结果连接到中df
,如下所示:
Id Value A B
0 1 2 10 20
1 1 2 11 21
2 2 5 10 20
2 2 5 11 21
2 …
Run Code Online (Sandbox Code Playgroud) 我有这个查询:
select top 5 * from tbl_post ORDER BY Id DESC
Run Code Online (Sandbox Code Playgroud)
我想选择第 20 行之后的前 5 行。我怎么能做到这一点?
我有一个数据帧如下:
DF:
Employee Day Hours_Worked
Tom Monday 5
John Monday 2
Tom Tuesday 3
John Tuesday 4
Run Code Online (Sandbox Code Playgroud)
我需要将它放入字典中的字典中,以便输出如下:
print(d)
d = {'Tom':{'Monday':5, 'Tuesday':3}, 'John': {'Monday':3, 'Tuesday':4'}..}
Run Code Online (Sandbox Code Playgroud)
我尝试过df.to_dict('dict')
但这并不是我想要的.
谢谢.
python ×8
pandas ×5
dataframe ×2
sql ×2
dictionary ×1
diff ×1
git ×1
join ×1
jupyter-lab ×1
keras ×1
merge ×1
multi-index ×1
scikit-learn ×1
sql-server ×1
t-sql ×1
tensorflow ×1