我有一个稀疏的数据框,包括购买或出售库存的日期,如下所示:
Date Inventory
2017-01-01 10
2017-01-05 -5
2017-01-07 15
2017-01-09 -20
Run Code Online (Sandbox Code Playgroud)
我想解决的第一步是添加其他日期。我知道您可以使用重新采样,但只需突出显示这部分,以防它对下一个更困难的部分产生影响。如下:
Date Inventory
2017-01-01 10
2017-01-02 NaN
2017-01-03 NaN
2017-01-04 NaN
2017-01-05 -5
2017-01-06 NaN
2017-01-07 15
2017-01-08 NaN
2017-01-09 -20
Run Code Online (Sandbox Code Playgroud)
最后一步是让它向前填充 NaN,除非它遇到一个新值,该值会添加到上面行的当前值中,以便最终的数据帧如下所示:
Date Inventory
2017-01-01 10
2017-01-02 10
2017-01-03 10
2017-01-04 10
2017-01-05 5
2017-01-06 5
2017-01-07 20
2017-01-08 20
2017-01-09 0
2017-01-10 0
Run Code Online (Sandbox Code Playgroud)
我正在尝试采用 pythonic 方法来解决此问题,而不是基于循环的方法,因为那样会非常慢。
该示例也适用于具有多列的表,如下所示:
Date InventoryA InventoryB
2017-01-01 10 NaN
2017-01-02 NaN NaN
2017-01-03 NaN 5
2017-01-04 NaN 5
2017-01-05 -5 NaN
2017-01-06 NaN …Run Code Online (Sandbox Code Playgroud) 我已经初始化了这样的数据帧
df = pd.DataFrame(columns=["stockname","timestamp","price","volume"])
df.timestamp = pd.to_datetime(df.timestamp, format = "%Y-%m-%d %H:%M:%S:%f")
df.set_index(['stockname', 'timestamp'], inplace = True)
Run Code Online (Sandbox Code Playgroud)
现在我从某个地方获取数据流但是为了程序,让我这样写
filehandle = open("datasource")
for line in filehandle:
line = line.rstrip()
data = line.split(",")
stockname = data[4]
price = float(data[3])
timestamp = pd.to_datetime(data[0], format = "%Y-%m-%d %H:%M:%S:%f")
volume = int(data[6])
df.loc[stockname, timestamp] = [price, volume]
filehandle.close()
print df
Run Code Online (Sandbox Code Playgroud) 我有一段时间的hhmmss格式.将它们转换为Excel时间值的公式是什么?
请注意,它们不一定是零填充.例如,09:21:34可能会出现92134而不是092134.
在这个页面上:
<div id="myMessage">Text to change</div>
Run Code Online (Sandbox Code Playgroud)
以下将成功更改显示的文本:
document.getElementById("myMessage").innerHTML = "New text!";
Run Code Online (Sandbox Code Playgroud)
但使用div的选择器不会:
$("myMessage").innerHTML = "This text will not appear!";
Run Code Online (Sandbox Code Playgroud)
为什么?
我的单元格中有一个日期值(假设A1),我想使用 VBA 检查该日期的时间是否大于或小于特定时间(假设 13 小时)。我怎样才能做到这一点?我试过:
if Cells(1,1)<TimeValue("13:00:00") then
'Something
end if
Run Code Online (Sandbox Code Playgroud)
但这没有用。
另外,如果我想获得时差,例如我想知道 13:00:00 和 13:10:00(即 10 分钟)之间的差异,我该怎么做?