我正在处理一些组织为 df 的财务数据,MultiIndex其中包含股票代码和日期以及包含回报的列。我想知道是否应该将索引转换为 aPeriodIndex而不是 aDateTimeIndex因为回报实际上是在一段时间内而不是瞬间。除了哲学论点之外,还有哪些实用功能PeriodIndex在这个特定用例中可能有用DateTimeIndex?
如果我有一个带有多级索引的pandas数据帧,我该如何按该索引的某个级别进行过滤.例如:
df = pd.DataFrame({"id": [1,2,1,2], "time": [1, 1, 2, 2], "val": [1,2,3,4]})
df.set_index(keys=["id", "time"], inplace=True)
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
df[df["time"] > 1]
Run Code Online (Sandbox Code Playgroud)
但time不再是专栏.我可以将它保留为列,但我不想拖动数据副本.
我正在gcloud compute使用元数据参数使用并指定我的脚本的URL 来启动GCP实例.脚本无法运行,当我检查元数据时,脚本URL就在那里.日志没有提到任何错误.
当我sudo -i从存储桶中复制脚本并执行时,它运行正常.
实例正在运行Ubuntu 18.04.有任何想法吗?
我在 pandas 中有一个包含每日数据的 df 。我想返回每个月的最后一个值。然而,我认为简单的解决方案是.resample("M").apply(lambda ser: ser.iloc[-1,]),似乎resample实际上计算了月结束日期,而不是返回该月出现的实际日期。这是有意的行为吗?微量元素:
import pandas as pd
import numpy as np
df = pd.Series(np.arange(100), index=pd.date_range(start="2000-01-02", periods=100)).to_frame()
df.sort_index().resample("M").apply(lambda ser: ser.iloc[-1,])
# 0
#2000-01-31 29
#2000-02-29 58
#2000-03-31 89
#2000-04-30 99
Run Code Online (Sandbox Code Playgroud)
虽然最后出现的日期df是2000-04-10