我在我的mac上编写了一些python代码,以及如何将其转移到Windows计算机上.这令人沮丧,无法言语.我安装了Python 2.7 x32,然后我卸载了它,然后我安装了Python 2.7 x64.我的python脚本依赖于xlrd和xlwt以及其他一些下载的模块.我想安装那些使用easy_install或pip或任何方式,这对那些不太了解计算机真正错综复杂的工作的人来说很容易.截至目前,如果我这样做:
C:\Windows\System32> python
Run Code Online (Sandbox Code Playgroud)
我明白了:
'python' is not recognized as an internal or external command operable program or batch file.
Run Code Online (Sandbox Code Playgroud)


有人会建议我下一步吗?
我做了一堆google-ing和stackoverflowing,似乎已经降落在这里,我不知道如何从这里下载一些东西.例如,我如何下载Pip,以及我下载哪一个?
我对终端很熟悉,我会在cmd中输入什么内容?
如果我可能对股票有不同的频率,那么存储各种股票的 OHLC 数据的最佳方法是什么?例如,我可能有:
* OHLC for 5-minute bars for APPL
* OHLC for 1-minute bars for APPL
* OHLC for 5-minute bars for IBM
Run Code Online (Sandbox Code Playgroud)
我正在考虑将所有内容存储在同一个表中,然后添加一个指定分辨率的列,因此它可能如下所示:
symbol, date, time, resolution, open, high, low, close
AAPL, 2017-06-19, 9:30, 5 min, 99.12, 102.52, 94.22, 98.34
AAPL, 2017-06-19, 9:30, 1 min, 99.12, 100.11, 99.01, 100.34
IBM, 2017-06-19, 9:30, 5 min, 40.15, 45.78, 39.18, 44.22
Run Code Online (Sandbox Code Playgroud)
看起来不错吗?
我将数千个时间序列.csv存储在网络驱动器上的文件中。在更新文件之前,我首先获取文件的最后一行以查看时间戳,然后在该时间戳之后使用数据进行更新。如何才能.csv通过网络驱动器快速获取文件的最后一行,从而不必.csv仅使用最后一行就加载整个大文件?
我正在尝试调整一些参数并且搜索空间非常大。到目前为止,我有 5 个维度,它可能会增加到大约 10 个。问题是,如果我能弄清楚如何对它进行多处理,我认为我可以获得显着的加速,但我找不到任何好的方法它。我正在使用hyperopt,但我不知道如何让它使用 1 个以上的内核。这是我没有所有不相关内容的代码:
from numpy import random
from pandas import DataFrame
from hyperopt import fmin, tpe, hp, Trials
def calc_result(x):
huge_df = DataFrame(random.randn(100000, 5), columns=['A', 'B', 'C', 'D', 'E'])
total = 0
# Assume that I MUST iterate
for idx_and_row in huge_df.iterrows():
idx = idx_and_row[0]
row = idx_and_row[1]
# Assume there is no way to optimize here
curr_sum = row['A'] * x['adjustment_1'] + \
row['B'] * x['adjustment_2'] + \
row['C'] * x['adjustment_3'] + \ …Run Code Online (Sandbox Code Playgroud) 如何运行数据框并仅返回满足特定条件的行?必须在先前的行和列上测试此条件.例如:
#1 #2 #3 #4
1/1/1999 4 2 4 5
1/2/1999 5 2 3 3
1/3/1999 5 2 3 8
1/4/1999 6 4 2 6
1/5/1999 8 3 4 7
1/6/1999 3 2 3 8
1/7/1999 1 3 4 1
Run Code Online (Sandbox Code Playgroud)
我想测试每一行的几个条件,如果所有条件都通过,我想将行追加到列表中.例如:
for row in dataframe:
if [row-1, column 0] + [row-2, column 3] >= 6:
append row to a list
Run Code Online (Sandbox Code Playgroud)
对于要返回的行,我最多可能有3个条件.考虑这样做的方法是为所有观察结果制作一个列表,对每个条件都是真实的,然后为所有三个列表中出现的所有行创建一个单独的列表.
我的两个问题如下:
根据以前的行获取满足特定条件的所有行的最快方法是什么?循环遍历5,000行的数据帧似乎可能太长了.特别是如果必须测试可能的3个条件.
获得满足所有3个条件的行列表的最佳方法是什么?
我有一个熊猫数据框,如:
a b id
1 10 6 1
2 6 -3 1
3 -3 12 1 # First time id 1 has a b value over 10
4 4 23 2 # First time id 2 has a b value over 10
5 12 11 2
6 3 -5 2
Run Code Online (Sandbox Code Playgroud)
如何创建一个新的数据框,首先获取该id列,然后第一次获取该列b超过 10 的时间,以便结果如下所示:
a b id
1 -3 12 1
2 4 23 2
Run Code Online (Sandbox Code Playgroud)
我有一个包含 2,000,000 行和大约 10,000 个id值的数据框,因此 for 循环非常慢。
我有一个可以随时启动或停止的程序。该程序用于从网页下载数据。首先,用户将在一个.csv文件中定义一堆网页,然后保存该.csv文件,然后启动程序。该程序将读取该.csv文件并将其转换为作业列表。接下来,作业被分成 5 个独立的downloader功能,这些功能并行工作但可能需要不同的时间来下载。
在downloader(其中有 5 个)完成下载网页后,我需要它来打开.csv文件并删除链接。这样,随着时间的推移,.csv文件会越来越小。问题是有时两个download函数会尝试同时更新.csv文件,会导致程序崩溃。我该如何处理?
我正在比较和绘制两个数组,我想绘制它们,并以某种颜色突出显示数组a小于数组的区域b.这是我正在尝试使用的代码,其中c的地方a小于b:
import pandas
import numpy
numpy.random.seed(10)
df = pandas.DataFrame(numpy.random.randn(10, 2), columns=['a', 'b'])
df['c'] = df['a'] < df['b']
Run Code Online (Sandbox Code Playgroud)
结果DataFrame是:
a b c
0 1.331587 0.715279 False
1 -1.545400 -0.008384 True
2 0.621336 -0.720086 False
3 0.265512 0.108549 False
4 0.004291 -0.174600 False
5 0.433026 1.203037 True
6 -0.965066 1.028274 True
7 0.228630 0.445138 True
8 -1.136602 0.135137 True
9 1.484537 -1.079805 False
Run Code Online (Sandbox Code Playgroud)
这是我在'可靠的MS Paint(RIP)中制作的一个漂亮的例子,展示了我想做的事情:
我的谷歌表中的架构如下所示:
price_datetime : DATETIME,
symbol : STRING,
bid_open : FLOAT,
bid_high : FLOAT,
bid_low : FLOAT,
bid_close : FLOAT,
ask_open : FLOAT,
ask_high : FLOAT,
ask_low : FLOAT,
ask_close : FLOAT
Run Code Online (Sandbox Code Playgroud)
在我做了一个之后,pandas.read_gbq我得到了一个dataframe像这样的列 dtypes:
price_datetime object
symbol object
bid_open float64
bid_high float64
bid_low float64
bid_close float64
ask_open float64
ask_high float64
ask_low float64
ask_close float64
dtype: object
Run Code Online (Sandbox Code Playgroud)
现在我想使用,to_gbq所以我从这些 dtypes 转换我的本地数据帧(我刚刚制作的):
price_datetime datetime64[ns]
symbol object
bid_open float64
bid_high float64
bid_low float64
bid_close float64
ask_open float64
ask_high float64 …Run Code Online (Sandbox Code Playgroud) 我有一个表Google BigQuery,我访问和使用Python中的修改pandas功能read_gbq和to_gbq。问题在于,添加100,000行需要大约150秒,而添加1行需要大约40秒。我想更新表中的值而不是添加一行,有没有一种方法可以使用python快速或快于40秒来更新表中的值?
我怎样才能得到一个等于的字符串:
' 100,000.23'
Run Code Online (Sandbox Code Playgroud)
鉴于我有变量
num = 100000.23
Run Code Online (Sandbox Code Playgroud)
我可以正确地证明:
num = 100000.23
'{:>10.2f}'.format(num)
Run Code Online (Sandbox Code Playgroud)
我可以将数以千计的分开:
num = 100000.23
'{:,}'.format(num)
Run Code Online (Sandbox Code Playgroud)
但我怎么能同时做到这两件事呢?
这是我的代码,我用它来打开excel表,然后将每行作为字符串列表返回(其中每个单元格都是一个字符串).该类返回一个列表,该列表填充了与文件中的行一样多的列表.所以50行将返回50个列表.
from xlrd import open_workbook
class ExcelReadLines(object):
def __init__(self,path_to_file):
'''Accepts the Excel File'''
self.path_to_file = path_to_file
self.__work__()
def __work__(self):
self.full_file_as_read_lines = []
self.book = open_workbook(self.path_to_file)
self.sheet = self.book.sheet_by_index(0)
for row_index in range(self.sheet.nrows):
single_read_lines = []
for col_index in range(self.sheet.ncols):
cell_value_as_string = str(self.sheet.cell(row_index,col_index).value)
cell_value_stripped = cell_value_as_string.strip('u')
single_read_lines.append(cell_value_stripped)
self.full_file_as_read_lines.append(single_read_lines)
return self.full_file_as_read_lines
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时:
for x in ExcelReader('excel_sheet'): print x
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
class is not iterable
Run Code Online (Sandbox Code Playgroud) 我有一个函数 - func_main - 它有几个输入.其中一个输入是另一个函数 - func_mini.较小的函数func_mini加载一些数据,它需要能够根据传递给它的参数从不同的源加载数据.问题是我正在阅读关于func_main的文档,它说它只接受无参数函数.我怎么能绕过这个?
例如:
def func_main(evaluator = None):
num_list = [1,2,3]
return evaluator(num_list)
def func_mini(data_source = None):
if not data_source:
data_source = config.DATA_SOURCE
return pandas.read_csv(data_source).min
Run Code Online (Sandbox Code Playgroud)
我想做到这一点:
func_main(func_mini(data_souce='path/to/my/file'))
Run Code Online (Sandbox Code Playgroud)
但是func_main文档说:
"评估者:无参数函数,定义并返回上述模型定义中所需的所有数据."
python ×9
pandas ×7
python-2.7 ×3
python-3.x ×2
sql ×2
class ×1
cmd ×1
csv ×1
database ×1
easy-install ×1
grid-search ×1
ipython ×1
iterator ×1
matplotlib ×1
numpy ×1
partial ×1
pip ×1
python-os ×1
time-series ×1