我有一个数据框,其中包含小麦的第二个时间序列数据df.
df = wt["WHEAT_USD"]
2016-05-02 02:00:00+02:00 4.780
2016-05-02 02:01:00+02:00 4.777
2016-05-02 02:02:00+02:00 4.780
2016-05-02 02:03:00+02:00 4.780
2016-05-02 02:04:00+02:00 4.780
Name: closeAsk, dtype: float64
Run Code Online (Sandbox Code Playgroud)
当我绘制数据时,由于周末,它有令人烦恼的水平线.有没有简单的方法可以简单地从数据框本身中删除非工作日.
就像是
df = df.BDays()
Run Code Online (Sandbox Code Playgroud) 从列表创建数据帧时,是否可以将索引设置为其中一个值?
import pandas as pd
tmp = [['a', 'a1'], ['b',' b1']]
df = pd.DataFrame(tmp, columns=["First", "Second"])
First Second
0 a a1
1 b b1
Run Code Online (Sandbox Code Playgroud)
以及我希望它看起来如何:
First Second
a a a1
b b b1
Run Code Online (Sandbox Code Playgroud) 我正在向画布添加一个matplotlib图形,以便我可以在我的应用程序中将它与pyqt集成.我在四处寻找并使用plt.add_subplot(111)似乎是要走的路(?)但我无法在子画面中添加任何属性,因为我可能会使用"普通"情节
图设置
self.figure1 = plt.figure()
self.canvas1 = FigureCanvas(self.figure1)
self.graphtoolbar1 = NavigationToolbar(self.canvas1, frameGraph1)
hboxlayout = qt.QVBoxLayout()
hboxlayout.addWidget(self.graphtoolbar1)
hboxlayout.addWidget(self.canvas1)
frameGraph1.setLayout(hboxlayout)
Run Code Online (Sandbox Code Playgroud)
创建子图并添加数据
df = self.quandl.getData(startDate, endDate, company)
ax = self.figure1.add_subplot(111)
ax.hold(False)
ax.plot(df['Close'], 'b-')
ax.legend(loc=0)
ax.grid(True)
Run Code Online (Sandbox Code Playgroud)
我想设置x和y标签,但是如果我这样做的话 ax.xlabel("Test")
AttributeError: 'AxesSubplot' object has no attribute 'ylabel'
Run Code Online (Sandbox Code Playgroud)
如果我不使用子图,我可以这样做
plt.figure(figsize=(7, 4))
plt.plot(df['Close'], 'k-')
plt.grid(True)
plt.legend(loc=0)
plt.xlabel('value')
plt.ylabel('frequency')
plt.title('Histogram')
locs, labels = plt.xticks()
plt.setp(labels, rotation=25)
plt.show()
Run Code Online (Sandbox Code Playgroud)
所以我想我的问题是,是不是可以进一步修改子图?或者我可以在pyqt画布中绘制图形,而不使用子图,这样我可以从我的图中获得更多属性的好处.
我正在尝试使用该命令安装PyQt5 pip install PyQt5
但我得到了一个错误.
我使用Python 3.5,Windows 10.
错误:
C:\WINDOWS\system32>pip install PyQt5
Collecting PyQt5
Using cached PyQt5-5.7-cp35-none-win_amd64.whl
Collecting sip (from PyQt5)
Using cached sip-4.18.1-cp35-none-win_amd64.whl
Installing collected packages: sip, PyQt5
Exception:
Traceback (most recent call last):
File "c:\anaconda3\lib\site-packages\pip\basecommand.py", line 215, in main
status = self.run(options, args)
File "c:\anaconda3\lib\site-packages\pip\commands\install.py", line 317, in run
prefix=options.prefix_path,
File "c:\anaconda3\lib\site-packages\pip\req\req_set.py", line 742, in install
**kwargs
File "c:\anaconda3\lib\site-packages\pip\req\req_install.py", line 831, in install
self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
File "c:\anaconda3\lib\site-packages\pip\req\req_install.py", line 1032, in move_wheel_files
isolated=self.isolated,
File "c:\anaconda3\lib\site-packages\pip\wheel.py", line 346, in …Run Code Online (Sandbox Code Playgroud) 我尝试按照https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#extending-the-existing-user-model上的示例了解如何扩展用户模型。但我无法检索附加到用户的模型数据。
模型
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
ip = models.IntegerField(default=0)
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
Run Code Online (Sandbox Code Playgroud)
获取我的 User 对象
user = auth.authenticate(username=username, password=password)
g = user.UserProfile.ip
print(g)
Run Code Online (Sandbox Code Playgroud)
用户被正确获取,并且我能够获取标准用户的所有数据。但 user.UserProfile 会导致:
Internal Server Error: /Crowd/login/
Traceback (most recent call last):
File "C:\Anaconda3\Lib\site-packages\django\core\handlers\base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Anaconda3\Lib\site-packages\django\core\handlers\base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Rasmus\workspace\Crowd\src\Cr\views.py", …Run Code Online (Sandbox Code Playgroud) 我有一个dataframe对象,其中包含EUR_USD货币对的1秒间隔.但理论上它可以是任何间隔,在这种情况下它可能看起来像这样:
2015-11-10 01:00:00+01:00 1.07616
2015-11-10 01:01:00+01:00 1.07605
2015-11-10 01:02:00+01:00 1.07590
2015-11-10 01:03:00+01:00 1.07592
2015-11-10 01:04:00+01:00 1.07583
Run Code Online (Sandbox Code Playgroud)
我想使用线性回归从数据框中的数据中绘制趋势线,但我不确定使用时间序列,甚至是如此小的时间序列间隔,最好的方法是什么.
到目前为止,我已经把时间替换为(这只是为了显示我想要去的地方)一个从0到时间序列列表长度的列表.
x = list(range(0, len(df.index.tolist()), 1))
y = df["closeAsk"].tolist()
Run Code Online (Sandbox Code Playgroud)
使用numpy做数学魔术
fit = np.polyfit(x,y,1)
fit_fn = np.poly1d(fit)
Run Code Online (Sandbox Code Playgroud)
最后,我将函数与df ["closeAsk"]一起绘制,以了解趋势.
plt.plot(x,df["closeAsk"], '-')
plt.plot(x,y, 'yo', x, fit_fn(x), '--k')
plt.show()
Run Code Online (Sandbox Code Playgroud)
然而现在x轴只是无意义的数字,而是我希望它们能够显示时间序列.
我有一个 OneToOneField 和我的 User 和 UserProfile 模型。和第二个模型交易。创建事务时,它需要一个外键用户对象。
我想要的是使用 OneToOneField UserProfile 来显示与该用户相关的事务对象。用交易对象的 str 表示。
所以它看起来像这样:
另一个例子是,假设我的数据库是
userid_id transaction_id
2 1
2 2
4 3
4 4
Run Code Online (Sandbox Code Playgroud)
然后每当我从管理面板查看用户 2 时,我只会看到交易 1 和 2。
我不太清楚如何显示 onetomany 关系或一般指定在管理面板中显示哪些对象。
class transaction(models.Model):
amount = models.IntegerField()
investment_point = models.ForeignKey(investment_point, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
ip = models.IntegerField(default=0)
ingameName = models.CharField(max_length=50, default='NotSet')
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
Run Code Online (Sandbox Code Playgroud)
在我的管理面板中
class UserProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural …Run Code Online (Sandbox Code Playgroud) cnx = mysql.connector.connect(user="root", password="pass", host="127.0.0.1", database="db")
cursor = cnx.cursor()
return cursor, cnx
Run Code Online (Sandbox Code Playgroud)
假设我像上面那样打开一个连接,并进行选择查询cursor.execute(selectquery)并使用它cursor.fetchall()来获取数据。
如果我不这样做cnx.close(),cursor.close()当我不断打开并执行这样的选择查询时会发生什么?
连接会保持打开状态吗?或者是否有任何“垃圾巡逻队”可以看到它没有被使用?
如果我有这样的数据帧:
index col1 col2
a a1 a2
b b1 b2
c c1 b2
Run Code Online (Sandbox Code Playgroud)
是否可以使用.drop()删除其中一列中具有突然值的行?
就像是: df.drop(col2 = 'b2')
<script src="https://maps.googleapis.com/maps/api/js?key=KEY&libraries=places" type="text/javascript"></script>
<script>
function initialize() {
var input = document.getElementById('searchTextField');
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.addListener('place_changed', function(){
console.log(autocomplete.getPlace());
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<input id="searchTextField" type="text" size="50">
Run Code Online (Sandbox Code Playgroud)
从浏览器的控制台中,我可以看到 getPlace.geometry.location.lat 是空的。我错过了什么吗?
python ×7
pandas ×4
django ×2
dataframe ×1
filter ×1
google-maps ×1
indexing ×1
matplotlib ×1
mysql ×1
pip ×1