小编Ale*_*man的帖子

在Pandas中使用join加入vlookup

我有以下2个数据帧

Example1
sku loc flag  
122  61 True 
123  61 True
113  62 True 
122  62 True 
123  62 False
122  63 False
301  63 True 

Example2 
sku dept 
113 a
122 b
123 b
301 c 
Run Code Online (Sandbox Code Playgroud)

我想使用Pandas(或最好的Python运算符)执行合并或加入opertation来生成以下数据框.

Example3
sku loc flag   dept  
122  61 True   b
123  61 True   b
113  62 True   a
122  62 True   b
123  62 False  b
122  63 False  b
301  63 True   c

Both 
df_Example1.join(df_Example2,lsuffix='_ProdHier')
df_Example1.join(df_Example2,how='outer',lsuffix='_ProdHier')
Run Code Online (Sandbox Code Playgroud)

不工作.我究竟做错了什么?

python join vlookup pandas

36
推荐指数
2
解决办法
7万
查看次数

如何在scikit学习中使用核密度估计作为一维聚类方法?

我需要将一个简单的单变量数据集聚集到预设数量的集群中.从技术上讲,它更接近于分类或排序数据,因为它只有1D,但我的老板称它为聚类,所以我将坚持使用该名称.我所使用的系统使用的当前方法是K-means,但这看起来有点过分.

有没有更好的方法来执行此任务?

其他一些帖子的答案提到了KDE(核密度估计),但这是一种密度估算方法,它会如何工作?

我看到KDE如何返回密度,但是如何告诉它将数据拆分成箱?

我如何拥有与数据无关的固定数量的箱(这是我的要求之一)?

更具体地说,如何使用scikit学习来解决这个问题?

我的输入文件如下:

 str ID     sls
 1           10
 2           11 
 3            9
 4           23
 5           21
 6           11  
 7           45
 8           20
 9           11
 10          12
Run Code Online (Sandbox Code Playgroud)

我想将sls编号分组成簇或箱,这样:

Cluster 1: [10 11 9 11 11 12] 
Cluster 2: [23 21 20] 
Cluster 3: [45] 
Run Code Online (Sandbox Code Playgroud)

我的输出文件将如下所示:

 str ID     sls    Cluster ID  Cluster centroid
    1        10       1               10.66
    2        11       1               10.66
    3         9       1               10.66 
    4        23       2               21.33   
    5        21       2               21.33
    6        11       1               10.66
    7 …
Run Code Online (Sandbox Code Playgroud)

cluster-analysis machine-learning data-mining kernel-density scikit-learn

23
推荐指数
2
解决办法
8054
查看次数

点击不在Windows python 2.7.9上工作

我已经安装了Python 2.7.9,它已经与pip捆绑在一起了.我检查它是否在模块列表中.但是当我跑步时pip install 我得到了 SyntaxError: invalid syntax

安装突出显示为错误?

我究竟做错了什么?

pip python-2.7

6
推荐指数
2
解决办法
3万
查看次数

如何选择在 Linux 上运行的 python 版本?

我正在使用的Linux版本默认有python 2.6,我们在一个单独的文件夹中安装了2.7。

如果我想运行 .py 脚本,如何告诉它使用 2.7 而不是默认值?

python linux

6
推荐指数
1
解决办法
1万
查看次数

Seaborn是否配有Anaconda?

我正试图在Spyder上玩Seaborn(作为Anaconda的一部分安装).

import seaborn as sb
Run Code Online (Sandbox Code Playgroud)

收益:

ImportError:没有名为seaborn的模块尽管Anaconda网站将seaborn列为默认软件包之一,而且seaborn网站上说Anaconda是获取软件包的最简单方法.

我究竟做错了什么?

python anaconda seaborn

6
推荐指数
3
解决办法
9332
查看次数

使用重复的列名重命名Pandas数据框中的列?

我有一个带有重复名称的列的df X:

In [77]: X_R
Out[77]: 
      dollars  dollars
   0   0.7085   0.5000
Run Code Online (Sandbox Code Playgroud)

我想重命名它,以便我有:

In [77]: X_R
Out[77]: 
       Retail   Cost
   0   0.7085   0.5000
Run Code Online (Sandbox Code Playgroud)

使用Pandas重命名功能确实有效:

X_R.rename(index=str, columns={"dollars": "Retail", "dollars": "Cost"})
Run Code Online (Sandbox Code Playgroud)

给我两个名为Cost的列.

在这种情况下,如何重命名列?

python pandas

6
推荐指数
5
解决办法
1万
查看次数

在 NLTK 中找不到 ghostscript 吗?

当我尝试使用块模块时,我正在玩 NLTK

enter import nltk as nk
Sentence  = "Betty Botter bought some butter, but she said the butter is  bitter, I f I put it in my batter, it will make my batter bitter."
tokens = nk.word_tokenize(Sentence)
tagged = nk.pos_tag(tokens)
entities = nk.chunk.ne_chunk(tagged) 
Run Code Online (Sandbox Code Playgroud)

当我输入时,代码运行良好

>> entities 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

enter code here Out[2]: Tree('S', [Tree('PERSON', [('Betty', 'NNP')]), Tree('PERSON', [('Botter', 'NNP')]), ('bought', 'VBD'), ('some', 'DT'), ('butter', 'NN'), (',', ','), ('but', 'CC'), ('she', 'PRP'), ('said', 'VBD'), ('the', 'DT'), ('butter', 'NN'), ('is', 'VBZ'), ('bitter', …
Run Code Online (Sandbox Code Playgroud)

python environment-variables ghostscript ipython nltk

2
推荐指数
1
解决办法
4932
查看次数

在熊猫中使用to_csv时删除一些列

我有一个要写入两个文件的数据框,一个包含所有列,一个仅包含列的子集,因此对于此数据框:

 Out_data
 Out[9]: 
    A     B                 C          D       E         F
0  354   49985400          10          07   7.140899  0.212044
1  738   49985400          10          07   7.140899  0.212044
2  738   49985277          11          09   4.024423  0.098387
3  246   49985279          10          07   7.140899  0.212044
Run Code Online (Sandbox Code Playgroud)

我想将其导出到两个csv文件中,一个包含所有数据,第二个仅包含来自A,B,C和D列的数据,以便csv看起来像这样:

  A,B,C,D,E,F
354,49985400,10,07,7.140899,0.212044
738,49985400,10,07,7.140899,0.212044
738,49985277,11,09,4.024423,0.098387
246,49985279,10,07,7.140899,0.212044
Run Code Online (Sandbox Code Playgroud)

第二个看起来像:

  A,B,C,D
354,49985400,10,07
738,49985400,10,07
738,49985277,11,09
246,49985279,10,07
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法获取第一个文件:

Out_data.to_csv(filename, mode = 'w', index=False)
Run Code Online (Sandbox Code Playgroud)

我尝试使用

Out_data.to_csv(filename, mode = 'w', cols = ['A','B','C','D'] ,index=False)
Run Code Online (Sandbox Code Playgroud)

但是我仍然走完全相同的输出文件吗?如何获取to_csv进行导出但删除某些列?

python pandas

1
推荐指数
1
解决办法
2444
查看次数

矢量化是硬件/框架特定的功能还是良好的编码习惯?

我正在尝试围绕矢量化(用于数值计算)进行思考,但我遇到了看似矛盾的解释:

  • 我的理解是,它是一个内置于低级库的功能,它利用给定处理器的并行处理能力同时对多个数据点执行操作。

  • 但是一些教程似乎将其描述为一种编码实践,可以将其合并到他们的代码中以提高效率。如果它也是您正在使用的框架中拥有或没有的功能,那么它是如何编码实践的。

对我的困境更具体的解释:

  • 假设我有一个循环来计算 Python 中数字列表的运算。为了对它进行矢量化,我只需导入 Numpy,然后使用数组函数一步完成计算,而不必编写耗时的循环。Numpy 使用的低级 C 例程将代表我完成所有繁重的工作。

据我所知,了解 Numpy 以及如何导入和使用它并不是一种编码实践。这只是工具和框架的良好知识,仅此而已。

那么为什么人们一直将矢量化称为优秀编码人员在其代码中利用的编码实践呢?

python parallel-processing performance numpy vectorization

1
推荐指数
1
解决办法
87
查看次数