我有一个问题与2014年的问题基本相同(见这里).但是,我的脚本仍然会抛出错误.
这就是我所做的:我有一个带有几列的pandas数据帧.我绘制了一个简单的boxplot比较.
g = sns.boxplot(x='categories', y='oxygen', hue='target', data=df)
g.set_xticklabels(rotation=30)
Run Code Online (Sandbox Code Playgroud)
该图如下所示:
我想将x标签旋转30度.因此我使用g.set_xticklabels(rotation=30).但是,我收到以下错误:
set_xticklabels() missing 1 required positional argument: 'labels'
我不知道如何将matplotlib labels论证传递给海关sns.boxplot.有任何想法吗?
我有一个大熊猫数据成名df.它有很多缺失.丢弃行/或逐行不是一种选择.输入中位数,平均值或最常见的值也不是一种选择(因此,插入pandas和/或scikit不幸的是没有做到这一点).
我遇到了一个看起来很整洁的包fancyimpute(你可以在这里找到它).但我有一些问题.
这是我做的:
#the neccesary imports
import pandas as pd
import numpy as np
from fancyimpute import KNN
# df is my data frame with the missings. I keep only floats
df_numeric = = df.select_dtypes(include=[np.float])
# I now run fancyimpute KNN,
# it returns a np.array which I store as a pandas dataframe
df_filled = pd.DataFrame(KNN(3).complete(df_numeric))
Run Code Online (Sandbox Code Playgroud)
但是,它df_filled是一个单一的向量,而不是填充的数据帧.如何通过插补来保持数据框?
我意识到,fancyimpute需要一个numpay array.我因此使用转换为df_numeric数组as_matrix(). …
我试图标记我从matplotlib创建的散点图/气泡图,其中包含pandas数据框中列的条目.我见过很多相关的例子和问题(参见例如此处和此处).因此我试图相应地注释情节.这是我做的:
import matplotlib.pyplot as plt
import pandas as pd
#example data frame
x = [5, 10, 20, 30, 5, 10, 20, 30, 5, 10, 20, 30]
y = [100, 100, 200, 200, 300, 300, 400, 400, 500, 500, 600, 600]
s = [5, 10, 20, 30, 5, 10, 20, 30, 5, 10, 20, 30]
users =['mark', 'mark', 'mark', 'rachel', 'rachel', 'rachel', 'jeff', 'jeff', 'jeff', 'lauren', 'lauren', 'lauren']
df = pd.DataFrame(dict(x=x, y=y, users=users)
#my attempt to plot …Run Code Online (Sandbox Code Playgroud) 我在“如何从统计学习元素中绘制 k 最近邻分类器的决策边界?” . 在本例中,K-NN 用于将数据分为三类。我特别喜欢它以班级成员的概率作为“信心”的标志。
r并且ggplot似乎做得很好。我想知道,这是否可以在 python 中重新创建?我最初的想法倾向于scikit-learn和matplotlib。这是来自 scikit 的 iris 示例:
print(__doc__)
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn import neighbors, datasets
n_neighbors = 15
# import some data to play with
iris = datasets.load_iris()
X = iris.data[:, :2] # we only take the first two features. We could
# avoid this ugly slicing by using a two-dim dataset
y = iris.target
h …Run Code Online (Sandbox Code Playgroud) 让我们假设我计算在一段时间内有多少桔子(Orange)和苹果(Apple)人(id).我也知道他们是年轻还是年老(group).熊猫数据框可能如下所示:
df = pd.DataFrame({'id' : ['1','2','3','7'],
'group' : ['Young', 'Young', 'Old', 'Old'],
'Apple' : [7,2,5,4],
'Orange' : [3,6,4,4],
})
Run Code Online (Sandbox Code Playgroud)
我们可以轻松计算使用的方法groupby().E. g:
df.Apple.groupby(df.group).mean()
Run Code Online (Sandbox Code Playgroud)
输出
Old 4.5
Young 4.5
Run Code Online (Sandbox Code Playgroud)
但是,让我们说,我想知道消费的苹果和橙子的数量与每个人的群体平均数有多大差异?
也就是说,输出应该是
df = pd.DataFrame({'id' : ['1','2','3','7'],
'group' : ['Young', 'Young', 'Old', 'Old'],
'Apple' : [7,2,5,4],
'Orange' : [3,6,4,4],
'Apple Difference' : [2.5, -2.5, 0.5, -0.5],
})
Run Code Online (Sandbox Code Playgroud)
有没有办法用pandas/numpy做到这一点?对不起摇滚乐问题Best/R.
我有一个带有日期的数据框,如下所示:
'Jan 2019', 'Feb 2019', 'Mär 2019', 'Apr 2019', 'Mai 2019', 'Jun 2019', 'Jul 2019', 'Aug 2019', 'Sep 2019', 'Okt 2019', 'Nov 2019', 'Dez 2019'
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用将列转换为日期时间
pd.to_datetime(df.month, format='%b%Y', errors='ignore')
Run Code Online (Sandbox Code Playgroud)
不幸的是,to_datetime返回对象而不是日期时间。我相信这是因为日期的德语拼写(例如“Mär 2019”而不是“Mar 2019”或“Dez 2019”而不是“Dec 2019”)。
这个问题的一个好的通用解决方案是什么?
我有一些有趣的用户数据。它提供了有关要求用户执行某些任务的及时性的一些信息。我正在尝试确定-是否可以预测/解释late-告诉我用户是否准时(0),稍晚(1)或相当晚(2)。我late从提供交通信号灯信息的列中生成(绿色=不迟,红色=超迟)。
这是我的工作:
#imports
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import preprocessing
from sklearn import svm
import sklearn.metrics as sm
#load user data
df = pd.read_csv('April.csv', error_bad_lines=False, encoding='iso8859_15', delimiter=';')
#convert objects to datetime data types
cols = ['Planned Start', 'Actual Start', 'Planned End', 'Actual End']
df = df[cols].apply(
pd.to_datetime, dayfirst=True, errors='ignore'
).join(df.drop(cols, 1))
#convert datetime to numeric data types
cols = ['Planned Start', …Run Code Online (Sandbox Code Playgroud) 我有一个很大的 Pandas 数据框,有很多列。数据框包含两组。基本设置如下:
import pandas as pd
csv = [{"air" : 0.47,"co2" : 0.43 , "Group" : 1}, {"air" : 0.77,"co2" : 0.13 , "Group" : 1}, {"air" : 0.17,"co2" : 0.93 , "Group" : 2} ]
df = pd.DataFrame(csv)
Run Code Online (Sandbox Code Playgroud)
我想对 t 检验进行配对 t 检验air,co2从而比较两组Group = 1和Group = 2.
我有更多的列air co2- 因此,我想找到一个适用于数据帧中所有列的过程。我相信,我可以scipy.stats.ttest_rel与pd.groupbyoder一起使用apply。这将如何运作?提前致谢/R
我对使用 Jupyter 很陌生。我在 Jupyter 中遇到了一个相当烦人的小东西:缩写。我有一个相当大但不是很大的熊猫数据框。我想对缺失的结构有所了解。但是,运行会df_total.isnull().sum()返回一个缩写为...(见下文)的列表。
roe_before_tax_1 1101
roe_before_tax_2 1165
roce_before_tax_0 1009
roce_before_tax_1 1050
roce_before_tax_2 1115
...
revenue_by_fte_2 689
personell_cost_by_revenue_0 1144
personell_cost_by_revenue_1 1187
personell_cost_by_revenue_2 1271
Run Code Online (Sandbox Code Playgroud)
有没有办法摆脱它并看到完整的输出?谢谢!/R
我试图从pandas数据帧中删除所有列,这些数据帧只有零(垂直axis=1).让我给你举个例子:
df = pd.DataFrame({'a':[0,0,0,0], 'b':[0,-1,0,1]})
a b
0 0 0
1 0 -1
2 0 0
3 0 1
Run Code Online (Sandbox Code Playgroud)
我想删除列,a因为它只有零.
但是,如果可能的话,我想以漂亮和矢量化的方式做到这一点.我的数据集很大 - 所以我不想循环.因此我试过了
df = df.loc[(df).any(1), (df!=0).any(0)]
b
1 -1
3 1
Run Code Online (Sandbox Code Playgroud)
这允许我删除列和行.但如果我只是试图删除列,loc似乎失败了.有任何想法吗?
我有一个简单的问题:我想绘制 scikit 的TSNE. 这是我所做的:
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.manifold import TSNE
x = df
model = TSNE(n_components=2, random_state=0)
model.fit_transform(x)
Run Code Online (Sandbox Code Playgroud)
也就是说,我有一个相当大的 dataframe df。我跑TSNE。结果是形式为的数组
array([[ 76.29642863, -37.2316455 ],
[ 83.28206784, -35.19983576],
[ -10.93624436, -109.37550438],
[ -3.39073195, -107.29288942],
[ 67.66224215, -2.2439687 ],
[ 30.82205017, -19.28584524],
[ 47.35280231, -27.03922442],
[ 81.63500728, -14.94290102],
[ 36.48278883, -76.13490133],
[ 51.12458861, -12.63904649],
[ 27.37677179, -63.35607228],
[ 57.70966133, -22.75333134],
[ -60.32088017, 76.30353357],
[ 33.80070371, -5.59486463],
[ 27.80748222, -43.02255416],
[ …Run Code Online (Sandbox Code Playgroud) 我有一个简单的pandas数据框.
import pandas as pd
x = [5, 10, 20, 30, 5, 10, 20, 30, 5, 10, 20, 30]
y = [100, 100, 200, 200, 300, 300, 400, 400, 500, 500, 600, 600]
users =['mark', 'mark', 'mark', 'rachel', 'rachel', 'rachel', 'jeff', 'jeff', 'jeff', 'lauren', 'lauren', 'lauren']
df = pd.DataFrame(dict(x=x, y=y, users=users)
Run Code Online (Sandbox Code Playgroud)
我想保留数据帧的某些行.让我们说所有"rachels"和"jeffs".我试过了df.query:
df=df.query('users=="rachel"' or 'users=="jeff"')
Run Code Online (Sandbox Code Playgroud)
结果是只有一个数据框users=="rachel".有没有办法结合查询?
python-3.x ×11
pandas ×8
matplotlib ×4
scikit-learn ×3
dataframe ×2
plot ×2
python ×2
datetime ×1
difference ×1
fancyimpute ×1
imputation ×1
knn ×1
markdown ×1
mean ×1
multilingual ×1
output ×1
scatter-plot ×1
scipy ×1
seaborn ×1
slice ×1