所以我意识到我在这里提出的问题是庞大而复杂的.
在我通过统计论坛和帖子搜索的所有内容中,我没有遇到一种科学合理的方法来考虑我遇到的数据类型,但我已经想到一个(新颖的?)潜在的解决方案来完美地解决(在我的想法)对于同一模型中的大型和小型数据集.
所提出的方法涉及使用遗传算法来改变定义构成implied strike速率的数据集的大小implied strike与要使用的百分比之间的关系的两个数字,其中模型的目标最大化1两列中的数字的同源性.以下csv.(超简化但希望证明原理)
Date,PupilName,Unique class,Achieved rank,x,y,x/y,Average xy
12/12/2012,PupilName1,UniqueClass1,1,3000,9610,0.312174818,0.08527
12/12/2012,PupilName2,UniqueClass1,2,300,961,0.312174818,0.08527
12/12/2012,PupilName3,UniqueClass1,3,1,3,0.333333333,0.08527
13/12/2012,PupilName1,UniqueClass2,1,2,3,0.666666667,0.08527
13/12/2012,PupilName2,UniqueClass2,2,0,1,0,0.08527
13/12/2012,PupilName3,UniqueClass2,3,0,5,0,0.08527
13/12/2012,PupilName4,UniqueClass2,4,0,2,0,0.08527
13/12/2012,PupilName5,UniqueClass2,5,0,17,0,0.08527
14/12/2012,PupilName1,UniqueClass3,1,1,2,0.5,0.08527
14/12/2012,PupilName2,UniqueClass3,2,0,1,0,0.08527
14/12/2012,PupilName3,UniqueClass3,3,0,5,0,0.08527
14/12/2012,PupilName4,UniqueClass3,4,0,6,0,0.08527
14/12/2012,PupilName5,UniqueClass3,5,0,12,0,0.08527
15/12/2012,PupilName1,UniqueClass4,1,0,0,0,0.08527
15/12/2012,PupilName2,UniqueClass4,2,1,25,0.04,0.08527
15/12/2012,PupilName3,UniqueClass4,3,1,29,0.034482759,0.08527
15/12/2012,PupilName4,UniqueClass4,4,1,38,0.026315789,0.08527
16/12/2012,PupilName1,UniqueClass5,1,12,24,0.5,0.08527
16/12/2012,PupilName2,UniqueClass5,2,1,2,0.5,0.08527
16/12/2012,PupilName3,UniqueClass5,3,13,59,0.220338983,0.08527
16/12/2012,PupilName4,UniqueClass5,4,28,359,0.077994429,0.08527
16/12/2012,PupilName5,UniqueClass5,5,0,0,0,0.08527
17/12/2012,PupilName1,UniqueClass6,1,0,0,0,0.08527
17/12/2012,PupilName2,UniqueClass6,2,2,200,0.01,0.08527
17/12/2012,PupilName3,UniqueClass6,3,2,254,0.007874016,0.08527
17/12/2012,PupilName4,UniqueClass6,4,2,278,0.007194245,0.08527
17/12/2012,PupilName5,UniqueClass6,5,1,279,0.003584229,0.08527
Run Code Online (Sandbox Code Playgroud)
所以我创建了一个很小的模型数据集,其中包含一些很好的例子,说明我当前的方法不足之处,以及我觉得遗传算法可以用来解决这个问题.如果我们查看上面的数据集,它包含6个唯一的类,该算法的最终目标是在调整的排名x/y和第achieved rank3列(基于零的参考)之间创建尽可能高的对应关系.在uniqueclass1我们有两个相同的x/y值,现在这些都是比较大的x/y,如果你用的平均水平进行比较(注意是平均不从这个数据集计算)值,而这将是预期,九千六百十分之三千更显著,因此更有可能有一个常识achieved rank的1比961分之300.所以我想做的是adjusted x/y使用等式定义的对数增长关系克服数据集大小的这些差异:
adjusted xy = ((1-exp(-y*?)) * x/y)) + ((1-(1-exp(-y*?)))*Average xy)
?唯一的动态数字在哪里
如果我可以稍微解释一下我的逻辑,并打开自己(希望)建设性的批评.下图显示了数据集大小与调整后的x/y的x/y%之间的指数增长关系.基本上上面的等式所说的是随着数据集变得越大,原始x/y使用的百分比adjusted x/y …
我正在尝试让python使用Twython为我发送一条推文,但出于某种原因,我正在尝试的一切都不起作用.
我跟着Twython自述文件,但仍无法实现我的想法.
以下是我最近尝试的代码:
from twython import Twython, TwythonError
APP_KEY = "KEYHERE"
APP_SECRET = "SECRETHERE"
twitter = Twython(APP_KEY, APP_SECRET)
auth = twitter.get_authentication_tokens()
OAUTH_TOKEN = auth['oauth_token']
OAUTH_TOKEN_SECRET = auth['oauth_token_secret']
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
try:
twitter.update_status(status='See how easy this was?')
except TwythonError as e:
print e
Run Code Online (Sandbox Code Playgroud)
在运行上面的代码时,我得到以下回溯错误:
Twitter API returned a 401 (Unauthorized), Invalid or expired token
Run Code Online (Sandbox Code Playgroud)
有谁知道我做错了什么,更重要的是如何解决这个问题?
我没有足够的积分来获得赏金,但我真的很感激帮助!
提前致谢
编辑
Traceback (most recent call last):
File "C:\testtweet.py", line 20, in <module>
final_step = twitter.get_authorized_tokens(oauth_verifier)
File "C:\Python27\lib\site-packages\twython\api.py", …Run Code Online (Sandbox Code Playgroud) 我试图使用来自网站的一些html使用Beautiful Soup解析几个div块.但是,我无法确定应该使用哪个函数来选择这些div块.我尝试过以下方法:
import urllib2
from bs4 import BeautifulSoup
def getData():
html = urllib2.urlopen("http://www.racingpost.com/horses2/results/home.sd?r_date=2013-09-22", timeout=10).read().decode('UTF-8')
soup = BeautifulSoup(html)
print(soup.title)
print(soup.find_all('<div class="crBlock ">'))
getData()
Run Code Online (Sandbox Code Playgroud)
我希望能够选择<div class="crBlock ">它之间的所有内容和它的正确结束</div>.(显然还有其他div标签,但我想一直选择块到代表html这一部分末尾的那个.)
我有一个非常大的CSV数据,我需要将第2列中每个名称的前一个数据附加到第2列中的当前日期之前的日期.我认为表示此问题的最简单方法是提供类似于我的实际数据的详细示例,但显着缩小:
Datatitle,Date,Name,Score,Parameter
data,01/09/13,george,219,dataa,text
data,01/09/13,fred,219,datab,text
data,01/09/13,tom,219,datac,text
data,02/09/13,george,229,datad,text
data,02/09/13,fred,239,datae,text
data,02/09/13,tom,219,dataf,text
data,03/09/13,george,209,datag,text
data,03/09/13,fred,217,datah,text
data,03/09/13,tom,213,datai,text
data,04/09/13,george,219,dataj,text
data,04/09/13,fred,212,datak,text
data,04/09/13,tom,222,datal,text
data,05/09/13,george,319,datam,text
data,05/09/13,fred,225,datan,text
data,05/09/13,tom,220,datao,text
data,06/09/13,george,202,datap,text
data,06/09/13,fred,226,dataq,text
data,06/09/13,tom,223,datar,text
data,06/09/13,george,219,dataae,text
Run Code Online (Sandbox Code Playgroud)
因此,对于此csv的三个第一行,没有先前的数据.因此,如果我们说我们希望在当前日期之前的日期将第3列和第4列用于george(row1)的最后3次出现,那么它将会是:
data,01/09/13,george,219,dataa,text,x,y,x,y,x,y
Run Code Online (Sandbox Code Playgroud)
但是,当以前的数据开始变得有用时,我们希望生成如下的csv:
Datatitle,Date,Name,Score,Parameter,LTscore,LTParameter,LTscore+1,LTParameter+1,LTscore+2,LTParameter+3,
data,01/09/13,george,219,dataa,text,x,y,x,y,x,y
data,01/09/13,fred,219,datab,text,x,y,x,y,x,y
data,01/09/13,tom,219,datac,text,x,y,x,y,x,y
data,02/09/13,george,229,datad,text,219,dataa,x,y,x,y
data,02/09/13,fred,239,datae,text,219,datab,x,y,x,y
data,02/09/13,tom,219,dataf,text,219,datac,x,y,x,y
data,03/09/13,george,209,datag,text,229,datad,219,dataa,x,y
data,03/09/13,fred,217,datah,text,239,datae,219,datab,x,y
data,03/09/13,tom,213,datai,text,219,dataf,219,datac,x,y
data,04/09/13,george,219,dataj,text,209,datag,229,datad,219,dataa
data,04/09/13,fred,212,datak,text,217,datah,239,datae,219,datab
data,04/09/13,tom,222,datal,text,213,datai,219,dataf,219,datac
data,05/09/13,george,319,datam,text,219,dataj,209,datag,229,datad
data,05/09/13,fred,225,datan,text,212,datak,217,datah,239,datae
data,05/09/13,tom,220,datao,text,222,datal,213,datai,219,dataf
data,06/09/13,george,202,datap,text,319,datam,219,dataj,209,datag
data,06/09/13,fred,226,dataq,text,225,datan,212,datak,217,datah
data,06/09/13,tom,223,datar,text,220,datao,222,datal,213,datai
data,06/09/13,george,219,datas,text,319,datam,219,dataj,209,datag
Run Code Online (Sandbox Code Playgroud)
您将注意到06/09/13乔治发生两次,并且两次他都有相同的字符串319,datam,219,dataj,209,datag附加到他的行.乔治第二次出现时,他会附上相同的字符串,因为上面的乔治3行是在同一天.(这只是强调"在当前日期之前的日期".
从列标题中可以看出,我们正在收集最后3个分数和相关的3个参数,并将它们附加到每一行.请注意,这是一个非常简单的例子.实际上每个日期将包含几千行,在真实数据中也没有名称的模式,所以我们不希望看到fred,tom,george在重复模式上彼此相邻.如果有人能帮助我弄清楚如何最好地实现这一目标(最有效率),我会非常感激.如果有什么不清楚请告诉我,我会添加更多细节.任何建设性意见表示赞赏.谢谢SMNALLY
我正在尝试关注youtube上的教程,现在在教程中他们使用matplotlib.pyplot绘制一些标准文本文件,我可以很容易地实现这一点,但是我现在尝试使用一些csvs执行同样的事情我有实际数据.
我正在使用的代码是导入matplotlib.pyplot作为plt import csv #import numpy as np
with open(r"Example RFI regression axis\Delta RFI.csv") as x, open(r"Example RFI regression axis\strikerate.csv") as y:
readx = csv.reader(x)
ready = csv.reader(y)
plt.plot(readx,ready)
plt.title ('Test graph')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.show()
Run Code Online (Sandbox Code Playgroud)
我收到的追溯很长
Traceback (most recent call last):
File "C:\V4 code snippets\matplotlib_test.py", line 11, in <module>
plt.plot(readx,ready)
File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 2832, in plot
ret = ax.plot(*args, **kwargs)
File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 3997, in plot
self.add_line(line)
File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 1507, in add_line
self._update_line_limits(line)
File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 1516, …Run Code Online (Sandbox Code Playgroud) 我正在寻找一些帮助,创建一些代码来查看我的屏幕区域,然后在60秒后检查它是否已更改.
在它发生变化后,我试图通过Skype向一群人发送消息,但是我遇到的问题是我无法使用ControlCommand,MouseMove,MouseClick,ControlSend轻松改变聊天等等.
我甚至尝试使用MouseClickPlus在最小化时单击,但这根本不起作用.
我正在尝试查看的框的问题是: 86, 109, 280, 109
如果有人知道如何做到这一点,我将非常感谢帮助.
我有一些格式略有不同的刮削数据,但为了标准化,我需要删除括号内的任何内容,包括括号,如果它们存在的话.我试图以各种方式使用条带但无济于事.
一些示例数据:
Text (te)
Text Text (tes)
Text-Text (te)
Text Text
Text-Text (tes)
Run Code Online (Sandbox Code Playgroud)
我需要在标准化后出现:
Text
Text Text
Text-Text
Text Text
Text-Text
Run Code Online (Sandbox Code Playgroud)
任何人都可以为我提供解决方案吗?谢谢SMNALLY
我有一个问题,我不知道目前如何解决.我有一个csv,格式如下所示.现在我需要做的是执行一些匹配方案并将一些文本字符串附加到文件.
x,classA,uniqueclassindicator1,1,125,21.8,1,5.22,
x,classc,uniqueclassindicator1,3,125,21.8,2,5.22,
x,classd,uniqueclassindicator2,1,125,21.8,,,
x,classe,uniqueclassindicator2,2,125,21.8,,,
x,classBa,uniqueclassindicator2,3,125,21.8,,,
x,classBc,uniqueclassindicator2,4,125,21.8,,,
x,classAd,uniqueclassindicator3,1,125,21.8,2,2.56,
x,classc,uniqueclassindicator3,2,125,21.8,1,2.56,
x,classD,uniqueclassindicator3,3,125,21.8,,,
x,classa,uniqueclassindicator3,4,125,21.8,,,
x,classn,uniqueclassindicator4,1,125,21.8,,,
x,classm,uniqueclassindicator4,2,125,21.8,,,
x,classt,uniqueclassindicator4,3,125,21.8,,,
x,classd,uniqueclassindicator4,4,125,30.8,,,
x,classa,uniqueclassindicator4,5,125,31.8,,,
x,classn,uniqueclassindicator4,6,125,30.8,,,
x,classq,uniqueclassindicator5,1,125,35.8,1,3.31,3.1
x,classqe,uniqueclassindicator5,2,125,21.8,2,3.31,3.1
x,classS,uniqueclassindicator5,3,125,21.8,3.31,3.1
x,classK,uniqueclassindicator5,4,125,21.8,,,
x,classL,uniqueclassindicator5,5,125,21.8,,,
x,classG,uniqueclassindicator5,6,125,21.8,,,
x,classH,uniqueclassindicator6,1,125,35.8,1,2.89,2.25
x,classF,uniqueclassindicator6,2,125,21.8,3,2.89,2.25
x,classP,uniqueclassindicator6,3,125,21.8,2,2.89,2.25
x,classY,uniqueclassindicator6,4,125,21.8,,,
x,classU,uniqueclassindicator6,5,125,21.8,,,
x,classR,uniqueclassindicator6,6,125,21.8,,,
Run Code Online (Sandbox Code Playgroud)
在整个示例中,假设基于零的索引
您会注意到在csv中,第2列是uniqueclassindicator,我需要为每个类执行以下操作.
如果第3列和第6列为1,并且第3列和第6列中相同的唯一类(不同的行)都是2,则生成字符串:
"text data text" (column [1]) #where row = 1# "text data" column [1] #where row =2# "text" (column[17])`
Run Code Online (Sandbox Code Playgroud)
例如,在第15行中我们有这个确切的场景.所以字符串文本字符串需要读取:
text data text classq text data classqe text 3.31
在上面的文本字符串中,从第1列第15行拉出"classq",从第1列第16行拉出"classqe",从第8列第15行拉出"3.31".
重申一下,产生此字符串的匹配是针对此类中的uniqueclassindicator5,第3列和第6列匹配(1-1和2-2)
与1基本相同,但是当第3列和第6列为1,2和2,1时.这发生在uniqueclassindicator3中,请参阅第7行作为示例.所以我们需要追加字符串:
text data text classc text data classAd text 2.56 #Note I have listed the class …Run Code Online (Sandbox Code Playgroud) 我有一个格式化的文件被|字符拆分.因为我习惯于操纵CSV,所以我认为将所有的|转换成为优先选择,.
我通常使用诸如此类的功能打开我的CSV
with open('minitest.csv', 'rb') as f:
Run Code Online (Sandbox Code Playgroud)
是否需要对其进行编辑以打开由其分隔的文件|或最好将它们全部转换为,.我已经倾向于后者,因为我的编码很多都是基于操纵CSV.
我有两个csv数据文件,其中每一行都有一个100%的唯一元素(注意行的顺序不一样),例如
title1,title2,title3,UniqueElment,title4,title5
data,data,data,dasasd1245,data,data
data,data,data,dasasd1395,data,data
data,data,data,dasasd2594,data,data
data,data,data,dasasd9587,data,data
Run Code Online (Sandbox Code Playgroud)
titlea,titleb,titlec,titled,titlee,titlef,UniqueElment,titleg,titleh,titlei
text,text,text,text,text,text,dasasd1245,text,text,data
text,text,text,text,text,text,dasasd2594,text,text,data
text,text,text,text,text,text,dasasd1395,text,text,data
text,text,text,text,text,text,dasasd9587,text,text,data
Run Code Online (Sandbox Code Playgroud)
title1,title2,title3,UniqueElment,title4,title5,titlea,titleb,titlec,titled,titlee,titlef,UniqueElment,titleg,titleh,titlei
data,data,data,dasasd1245,data,data,text,text,text,text,text,text,dasasd1245,text,text,data
data,data,data,dasasd1395,data,data,text,text,text,text,text,text,dasasd1395,text,text,data
data,data,data,dasasd2594,data,data,text,text,text,text,text,text,dasasd2594,text,text,data
data,data,data,dasasd9587,data,data,text,text,text,text,text,text,dasasd9587,text,text,data
Run Code Online (Sandbox Code Playgroud)
我需要创建一个最终的CSV,其中来自两个csvs的数据基于匹配UniqueElement而合并在一起.
我一直在尝试操作一些代码来查看第uniqueclassindicator3列中的不同代码,如果第3列2然后查看同一行中的前一行uniqueclassindicator以从该行检索数据.如果第3列和第6列都是,我的输出也应该实现1.
from collections import defaultdict
import csv
# you probably can think up better names
fields = ('TitleA', 'TitleB', 'TitleIndicator', 'TitleRNum', 'TitleC', 'TitleD', 'TitlePNum', 'TitleBF', 'TitleCheck')
entries = defaultdict(dict)
with open("exampledata.csv", 'rb') as fd:
reader = csv.DictReader(fd, fields)
for counter, row in enumerate(reader):
if counter != 0:
TitleRNum = int(row['TitleRNum'])
if row['TitlePNum']:
TitlePNum = int(row['TitlePNum'])
else:
TitlePNum = ""
Check = row['TitleCheck']
Name = row['TitleB']
key = (TitleRNum, TitleRNum)
previous = …Run Code Online (Sandbox Code Playgroud) 我试图从2012年和11月开始,一直持续几年的月份列表,一直到当前年份和月份.
start_year = "2012"
start_month = "November"
month = start_month
year = start_year
# some sort of for loop or cycle here
try:
with open('{} {}.csv'.format(month, year)):
CSVFile = True
if CSVFile:
print "do something cool here"
except IOError:
CSVFile = False
print ""
Run Code Online (Sandbox Code Playgroud)
任何有关如何获得此建议或建议的建议或建设性意见将不胜感激.谢谢SMNALLY