我在使用pandas的python中有一个20 x 4000的数据帧.其中两列名为Year和quarter.我想创建一个名为period的变量,将Year = 2000和quarter = q2变为2000q2
任何人都可以帮忙吗?
请考虑以下内容DataFrame.
n v1 v2 v3 v4 v5
0 1 2 3 4 5
1 1 2 3 4 5
2 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
对于每一行,我要添加的值v2,v3,v4到列表,并在列表乘值v5,并把结果放入一个新列v6,这样我最终有一个DataFrame是这样的:
n v1 v6
0 1 [10, 15, 20]
1 1 [10, 15, 20]
2 1 [10, 15, 20]
Run Code Online (Sandbox Code Playgroud)
我怎样才能在熊猫中实现这一目标?
我正在尝试对数据帧的一列进行单热编码.
enc = OneHotEncoder()
minitable = enc.fit_transform(df["ids"])
Run Code Online (Sandbox Code Playgroud)
但我得到了
弃用警告:传递1d数组作为数据在0.17中被弃用,并且在0.19中将ValueError用于表示.
这有解决方法吗?
我有一个由分类数据和数值数据组成的数据集,具有 124 个特征。为了降低其维度,我想删除不相关的特征。然而,为了针对特征选择算法运行数据集,我使用 get_dummies 对其进行了热编码,这将特征数量增加到 391 个。
In[16]:
X_train.columns
Out[16]:
Index([u'port_7', u'port_9', u'port_13', u'port_17', u'port_19', u'port_21',
...
u'os_cpes.1_2', u'os_cpes.1_1'], dtype='object', length=391)
Run Code Online (Sandbox Code Playgroud)
根据生成的数据,我可以通过交叉验证运行递归特征消除,如Scikit Learn 示例所示:
其产生:
鉴于识别的特征的最佳数量是 8,我如何识别特征名称?我假设我可以将它们提取到一个新的 DataFrame 中以用于分类算法?
[编辑]
在这篇文章的帮助下,我实现了以下目标:
def column_index(df, query_cols):
cols = df.columns.values
sidx = np.argsort(cols)
return sidx[np.searchsorted(cols, query_cols, sorter = sidx)]
feature_index = []
features = []
column_index(X_dev_train, X_dev_train.columns.values)
for num, i in enumerate(rfecv.get_support(), start=0):
if i == True:
feature_index.append(str(num))
for num, i in enumerate(X_dev_train.columns.values, start=0):
if str(num) in feature_index:
features.append(X_dev_train.columns.values[num]) …Run Code Online (Sandbox Code Playgroud) machine-learning feature-selection python-2.7 scikit-learn rfe