我想为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)
如何将"计数"值添加到图表上每个条形的顶部?
我在不同的运行中获得了不同的值...在这里我做错了什么:
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) 我有字符串列表.如果任何字符串包含'#'字符,那么我想提取字符串的第一部分,并仅从字符串的这一部分获取字标记的频率计数.即如果字符串是"第一个问题#在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) 如何更改色彩映射颜色方案以在点之外显示相同的颜色.
例如,这是我的色彩映射:
import palettable
cmap = palettable.colorbrewer.sequential.YlGn_9.mpl_colormap
Run Code Online (Sandbox Code Playgroud)
如果我使用此色彩图绘制0到100的范围,我如何修改色彩图,使其超过50,它会变为红色?
我在数据集中有一列具有分类值,我想将它们转换为数值。我正在尝试使用 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 开始。
当我使用熊猫时,我遇到了问题.我的任务是这样的:
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).任何人都可以帮助解决熊猫中的这个问题吗?非常感谢.
我有一个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)
有人能告诉我最简单的方法吗?
在 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) 我有一个看起来像的数据框:
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()函数似乎只允许按一列分组。
我有以下数据框:
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 ×10
pandas ×6
dataframe ×3
matplotlib ×3
scikit-learn ×3
seaborn ×3
colors ×1
datetime ×1