小编Nic*_*eli的帖子

将数据标签添加到Seaborn因子图

我想为Seaborn生成的因子图添加数据标签.这是一个例子:

import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

titanic_df = pd.read_csv('train.csv')
sns.factorplot('Sex',data=titanic_df,kind='count')
Run Code Online (Sandbox Code Playgroud)

此图像已创建

如何将"计数"值添加到图表上每个条形的顶部?

python matplotlib seaborn

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

如何将cross_val_score与random_state一起使用

我在不同的运行中获得了不同的值...在这里我做错了什么:

X=np.random.random((100,5))
y=np.random.randint(0,2,(100,))
clf=RandomForestClassifier()
cv = StratifiedKFold(y, random_state=1)
s = cross_val_score(clf, X,y,scoring='roc_auc', cv=cv)
print(s)
# [ 0.42321429  0.44360902  0.34398496]
s = cross_val_score(clf, X,y,scoring='roc_auc', cv=cv)
print(s)
# [ 0.42678571  0.46804511  0.36090226]
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn

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

Scikit Learn - 使用CountVectorizer从字符串分隔符中提取单词标记

我有字符串列表.如果任何字符串包含'#'字符,那么我想提取字符串的第一部分,并仅从字符串的这一部分获取字标记的频率计数.即如果字符串是"第一个问题#在stackoverflow上" 预期令牌是"第一个","问题"

如果字符串不包含'#',则返回整个字符串的标记.

计算我在CountVectorizerscikit中使用的术语文档矩阵.

在下面找到我的代码:

class MyTokenizer(object):
    def __call__(self,s):
        if(s.find('#')==-1):
            return s
        else:
            return s.split('#')[0]
    def FindKmeans():
        text = ["first ques # on stackoverflow", "please help"]
        vec = CountVectorizer(tokenizer=MyTokenizer(), analyzer = 'word')
        pos_vector = vec.fit_transform(text).toarray()
        print(vec.get_feature_names())`

output : [u' ', u'a', u'e', u'f', u'h', u'i', u'l', u'p', u'q', u'r', u's', u't', u'u']

Expected Output : [u'first', u'ques', u'please', u'help']
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn

5
推荐指数
2
解决办法
3443
查看次数

将python colormaps修改为特定点之外的单个值

如何更改色彩映射颜色方案以在点之外显示相同的颜色.

例如,这是我的色彩映射:

import palettable
cmap = palettable.colorbrewer.sequential.YlGn_9.mpl_colormap
Run Code Online (Sandbox Code Playgroud)

如果我使用此色彩图绘制0到100的范围,我如何修改色彩图,使其超过50,它会变为红色?

python matplotlib seaborn

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

在 scikitlearn 中为系列使用 LabelEncoder

我在数据集中有一列具有分类值,我想将它们转换为数值。我正在尝试使用 LabelEncoder,但这样做时出错。

from sklearn.preprocessing import LabelEncoder
m = hsp_train["Alley"]
m_enc = LabelEncoder()
j = m_enc.fit_transform(m)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

不可排序的类型:float() > str()

列中的系列有 3 个值。我希望它们分别为 0、1、2,但我收到了那个错误。

我也试过这个:

l = hsp_train["Alley"]
l_enc = pd.factorize(l)
hsp_train["Alley"] = l_enc[0]
Run Code Online (Sandbox Code Playgroud)

但这给了我值 -1, 1, 2. 我不想要它从 1 开始。

python machine-learning pandas scikit-learn

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

Pandas数据帧中每两列的总和

当我使用熊猫时,我遇到了问题.我的任务是这样的:

df=pd.DataFrame([(1,2,3,4,5,6),(1,2,3,4,5,6),(1,2,3,4,5,6)],columns=['a','b','c','d','e','f'])
Out:
    a b c d e f
0   1 2 3 4 5 6
1   1 2 3 4 5 6 
2   1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)

我想要做的是输出数据框如下所示:

Out:
    s1   s2   s3
0   3    7    11
1   3    7    11
2   3    7    11
Run Code Online (Sandbox Code Playgroud)

也就是说,分别对列(a,b),(c,d),(e,f)求和,并将结果列名重命名为(s1,s2,s3).任何人都可以帮助解决熊猫中的这个问题吗?非常感谢.

python dataframe pandas

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

按组键的数据帧中的Python值差异

我有一个DataFrame

name   value
A       2
A       4
A       5
A       7
A       8
B       3
B       4
B       8
C       1
C       3
C       5 
Run Code Online (Sandbox Code Playgroud)

我希望根据每个名称得到价值差异

name   value   dif
A       2      0
A       4      2
A       5      1
A       7      2
A       8      1
B       3      0
B       4      1
B       8      4
C       1      0
C       3      2
C       5      2
Run Code Online (Sandbox Code Playgroud)

有人能告诉我最简单的方法吗?

python dataframe pandas

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

在按 DataFrame 列着色图时,如何设置每个值的颜色?

在 matplotlib(特别是熊猫)中,如何将特定颜色映射到用于区分颜色的列的值?

假设我有一个专栏......

>> df["country"]
DE
EN
US
DE
Run Code Online (Sandbox Code Playgroud)

...现在我想从 DataFrame 中绘制值,其中每个国家/地区的颜色都不同。如何确定哪个国家获得哪种颜色?带颜色图?不幸的是,我找不到合适的文档。

我想应用这样的字典:

# pseudo-code
colormapping = {"DE": "blue", ...}
df.plot(colorby="country", colormapping)
Run Code Online (Sandbox Code Playgroud)

编辑:

这是一个示例数据帧。

    outlook   play  temperature country
0     sunny   True           25      DE
1     sunny   True           25      EN
2  overcast   True           19      DE
3      rain  False           21      US
4  overcast  False           33      IT
5      rain  False           27      EN
6      rain  False           22      FR
7  overcast   True           26      FR
8     sunny   True           13      FR
9     sunny   True           16      CH
Run Code Online (Sandbox Code Playgroud)

python colors matplotlib pandas seaborn

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

如何在 Pandas DataFrame 中对经纬度配对进行分组?

我有一个看起来像的数据框:

lon        lat
-77.487    39.044
-77.487    39.044
-122.031   37.354
-77.487    39.044
Run Code Online (Sandbox Code Playgroud)

我想将这些 lon-lat 配对与结果计数分组,如下所示:

lon        lat      count
-77.487    39.044   3
-122.031   37.354   1
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?该group()函数似乎只允许按一列分组。

python dataframe pandas

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

如何在 Pandas Dataframe 中过滤掉今天的日期

我有以下数据框:

Company     Date                 Value
ABC         08/21/16 00:00:00    500
ABC         08/22/16 00:00:00    600
ABC         08/23/16 00:00:00    650
ABC         08/24/16 00:00:00    625
ABC         08/25/16 00:00:00    675
ABC         08/26/16 00:00:00    680
Run Code Online (Sandbox Code Playgroud)

如果我们假设 2016 年 8 月 26 日是今天的日期,那么我想创建一个新的数据框,有效排除 08/26/16 行中的数据。

编辑: 这是我的代码:

today = time.strftime("%m/%d/%Y")
df.Date = df.Date <> today
Run Code Online (Sandbox Code Playgroud)

不幸的是,我看到一条错误消息,指出:

'Series' object has no attribute 'Date'
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

谢谢!

解决方案:

today = time.strftime("%Y-%m-%d")

df = df.loc[(df.Date < today)]
Run Code Online (Sandbox Code Playgroud)

python datetime pandas

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