我想知道代码片段之间是否有任何区别
from urllib import request
Run Code Online (Sandbox Code Playgroud)
和片段
import urllib.request
Run Code Online (Sandbox Code Playgroud)
或者它们是否可以互换.如果它们是可互换的,那就是"标准"/"首选"语法(如果有的话)?
谢谢!
在与NumPy和dateutil斗争了几天后,我最近发现了令人惊叹的Pandas库.我一直在仔细阅读文档和源代码,但我无法弄清楚如何date_range()在正确的断点处生成索引.
from datetime import date
import pandas as pd
start = date('2012-01-15')
end = date('2012-09-20')
# 'M' is month-end, instead I need same-day-of-month
date_range(start, end, freq='M')
Run Code Online (Sandbox Code Playgroud)
我想要的是:
2012-01-15
2012-02-15
2012-03-15
...
2012-09-15
Run Code Online (Sandbox Code Playgroud)
我得到了什么:
2012-01-31
2012-02-29
2012-03-31
...
2012-08-31
Run Code Online (Sandbox Code Playgroud)
我需要一个月大小的块来计算一个月中可变的天数.这可以使用dateutil.rrule:
rrule(freq=MONTHLY, dtstart=start, bymonthday=(start.day, -1), bysetpos=1)
Run Code Online (Sandbox Code Playgroud)
丑陋和难以辨认,但它的工作原理.我怎么能和熊猫一起做这个?我打得既date_range()和period_range(),到目前为止,没有运气.
我的实际目标是使用groupby,crosstab和/或resample计算的基础上,周期内各个条目的总和/单元/等各个周期值.换句话说,我想从以下数据转换数据:
total
2012-01-10 00:01 50
2012-01-15 01:01 55
2012-03-11 00:01 60
2012-04-28 00:01 80
#Hypothetical usage
dataframe.resample('total', how='sum', freq='M', start='2012-01-09', end='2012-04-15')
Run Code Online (Sandbox Code Playgroud)
至
total …Run Code Online (Sandbox Code Playgroud) ttk optionmenu小部件从下拉列表中的所有值开始.选择任何值后,列表中的第一个值将消失,永远不会重新出现......
有谁知道为什么?这是小部件设计的一个特征吗?尝试使用以下内容:
import tkinter.ttk as ttk
import tkinter as tk
a = tk.Tk()
options = ['1', '2', '3']
value = tk.StringVar()
masterframe = ttk.Frame()
masterframe.pack()
dropdown = ttk.OptionMenu(masterframe, value, *options)
dropdown.pack()
a.mainloop()
Run Code Online (Sandbox Code Playgroud)
注意 - 另一个用户在此处提出了相同的问题:OptionMenu在点击时不会显示第一个选项(Tkinter)
他们似乎找到了解决方法,但不明白为什么会发生这种情况.
更新:实际上只有在使用ttk小部件时才会出现此行为.tk小部件工作正常(尽管看起来非常难看).
我正在尝试使用绘图函数中的内置 row/col 参数来制作 seaborn 显示网格。
但是,我的某些行和列的值存在很大差异,默认设置是共享x/y轴。
我需要弄清楚把sharey = False和放在哪里sharex = False。我无法sns.displot直接将它们传递给对象,如果我尝试事先制作一个图形,它不会合并到对象中displot。
因此,在下面的示例中,我需要将第二行缩放为最大 ~0.5,而不是像 (0,1) 中的图那样 0.7,这会影响y下面所有图的轴比例。
最小可重复示例
tips = sns.load_dataset("tips")
plt.figure(figsize = (6, 6))
sns.displot(tips, x = "tip", multiple = "stack", kind = "kde", bw_adjust=.3, common_norm = False, col = "sex", row = "time")
Run Code Online (Sandbox Code Playgroud) 我正在通过操作做一个简单的组,试图比较组的意思.如下所示,我从较大的数据框中选择了特定列,从中删除了所有缺失值.

但是当我分组时,我失去了几列:

我从来没有遇到过大熊猫的问题,而且我在堆栈溢出上找不到任何类似的东西.有人有任何见解吗?
我正在寻找一种根据“色调”绘制带有堆叠条的计数图的有效方法。标准色调行为是根据第二列的值将计数拆分为平行条,我正在寻找的是一种将色调条堆叠以便快速比较总数的有效方法。
让我用一个来自泰坦尼克号数据集的例子来解释:
import pandas as pd
import numpy as np
import seaborn as sns
%matplotlib inline
df = sns.load_dataset('titanic')
sns.countplot(x='survived',hue='class',data=df)
Run Code Online (Sandbox Code Playgroud)
提供带有计数图和色调的标准 Seaborn 行为

我正在寻找的是类似于每个色调的堆叠条

为了获得最后一张图片,我使用了以下代码
def aggregate(rows,columns,df):
column_keys = df[columns].unique()
row_keys = df[rows].unique()
agg = { key : [ len(df[(df[rows]==value) & (df[columns]==key)]) for value in row_keys]
for key in column_keys }
aggdf = pd.DataFrame(agg,index = row_keys)
aggdf.index.rename(rows,inplace=True)
return aggdf
aggregate('survived','class',df).plot(kind='bar',stacked=True)
Run Code Online (Sandbox Code Playgroud)
我相信有一些更有效的方法。我知道 seaborn 对堆叠条形不太友好……所以我尝试用我的函数重新排列数据集并使用 matplotlib,但我想还有一种更聪明的方法可以做到这一点。
非常感谢!
我有一个像下面这样的numpy数组:
Xtrain = np.array([[1, 2, 3],
[4, 5, 6],
[1, 7, 3]])
Run Code Online (Sandbox Code Playgroud)
我想分别对每行的项进行随机播放,但不希望每行的shuffle相同(如在几个示例中只是随机播放列顺序).
例如,我想要一个如下输出:
output = np.array([[3, 2, 1],
[4, 6, 5],
[7, 3, 1]])
Run Code Online (Sandbox Code Playgroud)
如何以有效的方式随机随机地随机移动每一行?我的实际np数组超过100000行和1000列.
我一直在使用 matplotlib 没有任何问题,但昨天我尝试安装另一个使用 matplotlib 的库,因为我遇到了一个无法避免的错误。有人可以帮助我吗?
AttributeError Traceback (most recent call last)
<ipython-input-18-b478a6fd18e5> in <module>
1 import pandas as pd
2 import numpy as np
----> 3 import matplotlib.pyplot as plt
~\anaconda3\lib\site-packages\matplotlib\pyplot.py in <module>
47 from cycler import cycler
48 import matplotlib
---> 49 import matplotlib.colorbar
50 import matplotlib.image
51 from matplotlib import _api
~\anaconda3\lib\site-packages\matplotlib\colorbar.py in <module>
19
20 import matplotlib as mpl
---> 21 from matplotlib import _api, collections, cm, colors, contour, ticker
22 import matplotlib.artist as martist
23 import …Run Code Online (Sandbox Code Playgroud) 我有一个很好的表面,它代表了具有两个独立变量的回归的非线性多部分回归结果.我想将回归预测值绘制为一个漂亮的3D表面,然后将实际值显示为在表面上反弹的点.这将是绘制回归线并将实际值显示为线周围点的3D版本.我无法弄清楚如何用格子做到这一点.我很高兴在R中使用另一个图形库,但我不知道其他人做3D图.
这是我想要做的简化版本:
library(lattice)
#set up some simplified data
x <- seq(-.8, .8, .1)
y <- seq(-.8, .8, .1)
myGrid <- data.frame(expand.grid(x,y))
colnames(myGrid) <- c("x","y")
myGrid$z <- myGrid$x + myGrid$y
noise <- rnorm(length(myGrid$z),.3,.2)
myGrid$z2 <- myGrid$x + myGrid$y + noise
Run Code Online (Sandbox Code Playgroud)
z是我的光滑表面,z2是我的噪点,大部分位于表面之上.所以表面看起来像这样:
wireframe(myGrid$z ~ myGrid$x * myGrid$y, xlab="X", ylab="Y", zlab="Z")
Run Code Online (Sandbox Code Playgroud)
点云看起来像这样:
cloud(myGrid$z2 ~ myGrid$x * myGrid$y, xlab="X", ylab="Y", zlab="Z")
Run Code Online (Sandbox Code Playgroud)
是否有可能在一个格子面板中获得这两个?
所以我在这里看到了一些有帮助的答案,但我的数据集比之前回答的数据集要大。为了让您了解我正在使用的内容,这里有一个完整数据集的链接。我提供了一张尝试解决方案的图片,可以在此链接中找到该解决方案:
。
问题是 1. 这很难阅读,2. 我不知道如何将其展平,使其看起来像传统的时间线。当我尝试处理更大的片段时,这个问题变得更加明显,比如这个,它基本上是不可读的:
这是我用来生成这两个代码的代码(我刚刚修改了包含的代码以更改使用整个数据集的哪个部分)。
event = Xia['EnglishName']
begin = Xia['Start']
end = Xia['Finish']
length = Xia['Length']
plt.figure(figsize=(12,6))
plt.barh(range(len(begin)), (end-begin), .3, left=begin)
plt.tick_params(axis='both', which='major', labelsize=15)
plt.tick_params(axis='both', which='minor', labelsize=20)
plt.title('Xia Dynasty', fontsize = '25')
plt.xlabel('Year', fontsize = '20')
plt.yticks(range(len(begin)), "")
plt.xlim(-2250, -1750)
plt.ylim(-1,18)
for i in range(18):
plt.text(begin.iloc[i] + length.iloc[i]/2, i+.25, event.iloc[i], ha='center', fontsize = '12')
Run Code Online (Sandbox Code Playgroud)
这段代码半有效,但我更喜欢条形图要么距离更近,要么颜色不同,并且都在相同的 y 值上。我感谢任何和所有的帮助。我已经尝试解决这个问题大约两周了,但遇到了困难。