编辑:
我在大熊猫数据框df中有一个金融投资组合,其中指数是日期,我每个日期有多个金融股.
例如数据帧:
Date Stock Weight Percentile Final weight
1/1/2000 Apple 0.010 0.75 0.010
1/1/2000 IBM 0.011 0.4 0
1/1/2000 Google 0.012 0.45 0
1/1/2000 Nokia 0.022 0.81 0.022
2/1/2000 Apple 0.014 0.56 0
2/1/2000 Google 0.015 0.45 0
2/1/2000 Nokia 0.016 0.55 0
3/1/2000 Apple 0.020 0.52 0
3/1/2000 Google 0.030 0.51 0
3/1/2000 Nokia 0.040 0.47 0
Run Code Online (Sandbox Code Playgroud)
我创建了Final_weight这样做的分配值Weight,只要Percentile大于0.7
现在我希望这有点复杂,我仍然希望Weight被分配到Final_weight什么时候Percentile is > 0.7,但是在这个日期之后(在未来的任何时候),而不是在股票Percentile没有时变为0 >0.7 …
我正在读取一个大型csv,其中包含约1000万行和20个不同的列(带有标头名称)。
我有值,2列与日期和一些字符串。
目前,我需要大约1.5分钟的时间来加载数据,如下所示:
df = pd.read_csv('data.csv', index_col='date', parse_dates = 'date')
Run Code Online (Sandbox Code Playgroud)
我想问一下,如何在读取数据后立即将其数据框设置得更快呢?
我尝试使用HDF5数据库,但是速度很慢。
我尝试读取的数据子集(我选择了8列,并从实际的20列和几百万行中给出了3行):
Date Comp Rating Price Estprice Dividend? Date_earnings Returns
3/12/2017 Apple Buy 100 114 Yes 4/4/2017 0.005646835
3/12/2017 Blackberry Sell 120 97 No 4/25/2017 0.000775331
3/12/2017 Microsoft Hold 140 100 Yes 5/28/2017 0.003028423
Run Code Online (Sandbox Code Playgroud)
谢谢你的建议。
我想为每个日期创建一个分位数列。计算每个唯一值销售值的分位数。即类别始终对应于每个特定日期的相同销售数字。
\n\n我有按日期索引的数据框。有许多日期和多个相同的日期。1 天 df 的子集示例:
\n\n Category Sales Ratio 1 Ratio 2\n11/19/2016 Bar 300 0.46 0.96\n11/19/2016 Bar 300 0.56 0.78\n11/19/2016 Bar 300 0.43 0.96\n11/19/2016 Bar 300 0.47 0.94\n11/19/2016 Casino 550 0.92 0.12\n11/19/2016 Casino 550 0.43 0.74\n11/19/2016 Casino 550 0.98 0.65\n11/19/2016 Casino 550 0.76 0.67\n11/19/2016 Casino 550 0.79 0.80\n11/19/2016 Casino 550 0.90 0.91\n11/19/2016 Casino 550 0.89 0.31\n11/19/2016 Caf\xc3\xa9 700 0.69 0.99\n11/19/2016 Caf\xc3\xa9 700 0.07 0.18\n11/19/2016 Caf\xc3\xa9 700 0.75 0.59\n11/19/2016 Caf\xc3\xa9 700 0.07 0.64\n11/19/2016 Caf\xc3\xa9 700 0.14 0.42\n11/19/2016 Caf\xc3\xa9 700 0.30 …Run Code Online (Sandbox Code Playgroud) 对于pandas数据框中的"stock"列,我想添加一个名为last_index的列,它给出了给定Stock之前的索引值的值:
输入:
Stock
02/10/17 IBM
02/10/17 Apple
02/10/17 Google
02/10/17 Microsoft
02/10/17 Lenova
02/10/17 Nintendo
02/10/17 Sony
02/10/17 Toshiba
03/10/17 IBM
03/10/17 Apple
03/10/17 Google
03/10/17 Microsoft
03/10/17 Lenova
03/10/17 Nintendo
03/10/17 Sony
03/10/17 BMW
03/10/17 Mercedes
04/10/17 Toshiba
Run Code Online (Sandbox Code Playgroud)
输出:
Stock Last_index
02/10/17 IBM
02/10/17 Apple
02/10/17 Google
02/10/17 Microsoft
02/10/17 Lenova
02/10/17 Nintendo
02/10/17 Sony
02/10/17 Toshiba
03/10/17 IBM 02/10/17
03/10/17 Apple 02/10/17
03/10/17 Google 02/10/17
03/10/17 Microsoft 02/10/17
03/10/17 Lenova 02/10/17
03/10/17 Nintendo 02/10/17
03/10/17 Sony 02/10/17
03/10/17 …Run Code Online (Sandbox Code Playgroud)