以下代码无效的原因让我发疯,我希望有人可以帮助我。
我有一些函数 java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 1
|+
^
at java.util.regex.Pattern.error(Pattern.java:1955)
at java.util.regex.Pattern.sequence(Pattern.java:2123)
at java.util.regex.Pattern.expr(Pattern.java:1996)
at java.util.regex.Pattern.compile(Pattern.java:1696)
at java.util.regex.Pattern.<init>(Pattern.java:1351)
at java.util.regex.Pattern.compile(Pattern.java:1028)
at java.lang.String.replaceAll(String.java:2223)
at $anonfun$1.apply(<console>:16)
at $anonfun$1.apply(<console>:15)
at scala.collection.immutable.List.foreach(List.scala:381)
... 33 elided
要合并的两个数据集的时间索引,并创建传递给下面代码的honey_adj_signals数据帧。
当.resample()
数据集的索引.resample()
时,此代码运行正常,但当我尝试'W'
时,我得到的数据长度14与索引长度15不匹配&# 39;错误作为代码的输出。
我不明白为什么会这样,也不知道如何纠正,我被卡住了。
我已在此处上传了每周数据框:
https://drive.google.com/open?id=0B4xdnV0LFZI1TmRnZllVSW52aWs
这里的月度数据框:
https://drive.google.com/open?id=0B4xdnV0LFZI1WnBSWVBpMzR2MGM
'M'
最终输出应如下所示(这是每周输出的样子)
honey_adj_long_profits = pd.DataFrame({
"Price": honey_adj_signals.loc[(honey_adj_signals["Signal"] == "Buy") &
honey_adj_signals["Regime"] == 1, "Price"],
"Profit": pd.Series(honey_adj_signals["Price"] - honey_adj_signals["Price"].shift(1)).loc[
honey_adj_signals.loc[(honey_adj_signals["Signal"].shift(1) == "Buy") & (honey_adj_signals["Regime"].shift(1) == 1)].index
].tolist(),
"End Date": honey_adj_signals["Price"].loc[
honey_adj_signals.loc[(honey_adj_signals["Signal"].shift(1) == "Buy") & (honey_adj_signals["Regime"].shift(1) == 1)].index
].index
})
print(honey_adj_long_profits)
答案 0 :(得分:2)
当我告诉你什么是错的时候,你会踢自己。
在您的每周数据中,您的最后记录是“销售”信号,您处理此信息的方式是成对的。您进入“买入”信号,然后将一个转移到“卖出”记录。
在您的月度数据中,您的上一条记录是“买入”信号,因此当您尝试转移到下一个“卖出”记录时,会发生索引长度错误。为了测试这一点,我删除了月度数据中的最后一条记录并运行了代码。执行没有错误。
我想。