小编Arc*_*hie的帖子

Pandas在列之间求和,并从该值中划分每个单元格

我已经阅读了一个csv文件并将其转换为以下结构:

pivoted = df.pivot('user_id', 'group', 'value')
lookup = df.drop_duplicates('user_id')[['user_id', 'group']]
lookup.set_index(['user_id'], inplace=True)
result = pivoted.join(lookup)
result = result.fillna(0) 
Run Code Online (Sandbox Code Playgroud)

结果部分:

             0     1     2    3     4    5   6  7    8   9  10  11  12  13  group
user_id                                                                      
2        33653  2325   916  720   867  187  31  0    6   3  42  56  92  15    l-1
4        18895   414  1116  570  1190   55  92  0  122  23  78   6   4   2    l-2 
16        1383    70    27   17    17    1   0  0    0   0   1   0 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

40
推荐指数
4
解决办法
5万
查看次数

用点Pandas替换逗号

给定以下数组,我想用点替换逗号:

array(['0,140711', '0,140711', '0,0999', '0,0999', '0,001', '0,001',
       '0,140711', '0,140711', '0,140711', '0,140711', '0,140711',
       '0,140711', 0L, 0L, 0L, 0L, '0,140711', '0,140711', '0,140711',
       '0,140711', '0,140711', '0,1125688', '0,140711', '0,1125688',
       '0,140711', '0,1125688', '0,140711', '0,1125688', '0,140711',
       '0,140711', '0,140711', '0,140711', '0,140711', '0,140711',
       '0,140711', '0,140711', '0,140711', '0,140711', '0,140711',
       '0,140711', '0,140711', '0,140711', '0,140711', '0,140711',
       '0,140711', '0,140711', '0,140711', '0,140711'], dtype=object)
Run Code Online (Sandbox Code Playgroud)

我一直在尝试不同的方法,但我无法弄清楚如何做到这一点.此外,我已将其导入为pandasDataFrame但无法应用该功能:

df
      1-8        1-7
H0   0,140711   0,140711
H1     0,0999     0,0999
H2      0,001      0,001
H3   0,140711   0,140711
H4   0,140711   0,140711
H5   0,140711   0,140711
H6          0          0
H7          0          0 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何改变seaborn中因子图的顺序

我的数据如下:

m=pd.DataFrame({'model':['1','1','2','2','13','13'],'rate':randn(6)},index=['0', '0','1','1','2','2'])
Run Code Online (Sandbox Code Playgroud)

我希望在[1,2,13]中排序因子图的x轴,但默认值为[1,13,2].

有谁知道如何改变它?

更新:我想我已经通过以下方式解决了这个问题,但也许有一种更好的方法可以使用索引来做到这一点?

sns.factorplot('model','rate',data=m,kind="bar",x_order=['1','2','13'])
Run Code Online (Sandbox Code Playgroud)

python bar-chart pandas seaborn

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

如何使用自定义SVM内核?

我想用Python实现我自己的高斯内核,只是为了锻炼.我正在使用: sklearn.svm.SVC(kernel=my_kernel)但我真的不明白发生了什么.

我期待的功能my_kernel与的列被称为X矩阵作为参数,而不是我得到了它一个名为X,X作为参数.看一下这些例子,事情并不清楚.

我错过了什么?

这是我的代码:

'''
Created on 15 Nov 2014

@author: Luigi
'''
import scipy.io
import numpy as np
from sklearn import svm
import matplotlib.pyplot as plt

def svm_class(fileName):

    data = scipy.io.loadmat(fileName)
    X = data['X']
    y = data['y']

    f = svm.SVC(kernel = 'rbf', gamma=50, C=1.0)
    f.fit(X,y.flatten())
    plotData(np.hstack((X,y)), X, f)

    return

def plotData(arr, X, f):

    ax = plt.subplot(111)

    ax.scatter(arr[arr[:,2]==0][:,0], arr[arr[:,2]==0][:,1], c='r', marker='o', label='Zero')
    ax.scatter(arr[arr[:,2]==1][:,0], arr[arr[:,2]==1][:,1], c='g', marker='+', label='One')

    h = .02  # step …
Run Code Online (Sandbox Code Playgroud)

python machine-learning gaussian svm scikit-learn

13
推荐指数
2
解决办法
9382
查看次数

查找 DataFrame 错误中有害列的平均值

      id gender status dept  var1  var2  salary
0   P001      M     FT   DS   2.0   8.0     NaN
1   P002      F     PT   FS   3.0   NaN    54.0
2   P003      M    NaN  AWS   5.0   5.0    59.0
3   P004      F     FT  AWS   NaN   8.0   120.0
4   P005      M     PT   DS   7.0  11.0    58.0
5   P006      F     PT  NaN   1.0   NaN    75.0
6   P007      M     FT   FS   NaN   NaN     NaN
7   P008      F    NaN   FS  10.0   2.0   136.0
8   P009      M     PT  NaN  14.0   3.0    60.0
9 …
Run Code Online (Sandbox Code Playgroud)

python mean pandas

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

如何降低海鞘中x-ticks的密度

我有一些数据,基于此我试图在seaborn中建立一个计数图.所以我这样做:

data = np.hstack((np.random.normal(10, 5, 10000), np.random.normal(30, 8, 10000))).astype(int)
plot_ = sns.countplot(data)
Run Code Online (Sandbox Code Playgroud)

得到我的计数图:

在此输入图像描述

问题是x轴上的刻度太密集(这使得它们无用).我试图降低密度,plot_.xticks=np.arange(0, 40, 10)但没有帮助.

还有一种方法可以用一种颜色制作情节吗?

python matplotlib seaborn

10
推荐指数
4
解决办法
4484
查看次数

'generator'类型的对象没有len()

我刚刚开始学习python.我想在NLTK中编写一个程序,将文本分成unigrams,bigrams.例如,如果输入文本是:

"由于错误,我感到悲伤和失望"

函数应该生成如下文本:

我 - >感觉 - >感到难过 - >悲伤和 - >和失望 - >失望到期 - >由于 - >错误

我编写了代码来输入文本到程序中.这是我正在尝试的功能:

def gen_bigrams(text):
    token = nltk.word_tokenize(review)
    bigrams = ngrams(token, 2)
    #print Counter(bigrams)
    bigram_list = ""
    for x in range(0, len(bigrams)):
        words = bigrams[x]
        bigram_list = bigram_list + words[0]+ " " + words[1]+"-->"
    return bigram_list
Run Code Online (Sandbox Code Playgroud)

我得到的错误是......

for x in range(0, len(bigrams)):
TypeError: object of type 'generator' has no len()
Run Code Online (Sandbox Code Playgroud)

由于ngram函数返回一个生成器,我尝试使用len(list(bigrams))但它返回0值,所以我得到相同的错误.我已经提到了有关stackexchange的其他问题,但我仍然没有解决如何解决这个问题.我被这个错误困住了.任何解决方法,建议?

python nltk

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

如何在seaborn中用'hue'参数绘制一个关节图

我想要以下命令行的图:

import numpy as np, pandas as pd
import seaborn as sns; sns.set(style="white", color_codes=True)
tips = sns.load_dataset("tips")
g = sns.jointplot(x="total_bill", y="tip", data=tips, hue= 'sex')
Run Code Online (Sandbox Code Playgroud)

如果参数'hue'是在jointplot中实现的.

我怎样才能做到这一点?

也许重叠两个联合情节?

python matplotlib pandas seaborn

9
推荐指数
3
解决办法
8878
查看次数

python:生成整数分区

我需要生成给定整数的所有分区.
我发现Jerome Kelleher的这个算法对它来说是最有效的算法:

def accelAsc(n):
    a = [0 for i in range(n + 1)]
    k = 1
    a[0] = 0
    y = n - 1
    while k != 0:
        x = a[k - 1] + 1
        k -= 1
        while 2*x <= y:
            a[k] = x
            y -= x
            k += 1
        l = k + 1
        while x <= y:
            a[k] = x
            a[l] = y
            yield a[:k + 2]
            x += 1
            y -= 1
        a[k] …
Run Code Online (Sandbox Code Playgroud)

python performance combinatorics data-partitioning

8
推荐指数
2
解决办法
2915
查看次数

如何在seaborn lmplot上添加标题?

我想在Searbon lmplot上添加标题.

ax = plt.axes()
sns.lmplot(x, y, data=df, hue="hue", ax=ax)
ax.set_title("Graph (a)")
plt.show()
Run Code Online (Sandbox Code Playgroud)

但我注意到lmplot没有ax参数.如何在我的lmplot上添加标题?

python matplotlib dataframe pandas seaborn

8
推荐指数
4
解决办法
9965
查看次数