虽然这可能听起来像是一个统计问题,但请你忍受我。在
我从不同采样地点采集的水样中提取了几种钙浓度。一些监测站每月、每年、每隔一年重新取样一次。在
我想用Wilcoxon-Pratt符号秩检验来测量一组台站钙浓度的年变化和十年变化,正如Lindsey和Rupert(http://pubs.usgs.gov/sir/2012/5049/)所做的那样。为了进行测试,我想创建一对数据,这些数据以一年(365天的时间增量)或尽可能接近该时间范围。配对的测量值应该有相同的月份,只是年份不同。我只需要每个车站每月一双。我不希望在同一个站、同一个月、同一年的样本浓度取平均值。在
以下是我的数据示例: https://raw.githubusercontent.com/inkenbrandt/IPython/master/Calcium_Samples.csv
SampleLocation CalciumConc_mgL
SampleDate
10/1/1947 0:00 USGS-09382000 66.0
10/15/1947 0:00 USGS-09382000 132.0
1/1/1948 0:00 USGS-09382000 130.0
1/15/1948 0:00 USGS-09382000 98.0
5/1/1948 0:00 USGS-09382000 82.0
5/15/1948 0:00 USGS-09382000 53.0
6/1/1948 0:00 USGS-09382000 142.0
9/1/1948 0:00 USGS-09382000 107.0
9/15/1948 0:00 USGS-09382000 59.0
10/1/1948 0:00 USGS-09382000 106.0
10/15/1948 0:00 USGS-09382000 102.0
5/15/1949 0:00 USGS-09382000 59.0
6/1/1949 0:00 USGS-09382000 50.0
6/15/1949 0:00 USGS-09382000 161.0
9/1/1949 0:00 USGS-09382000 82.0
9/15/1949 0:00 USGS-09382000 376.0
10/1/1949 0:00 USGS-09382000 210.0
10/15/1949 0:00 USGS-09382000 131.0
1/1/1950 0:00 USGS-09382000 132.0
... ... ...
9/20/1947 0:00 USGS-09288500 59.0
9/20/1947 0:00 USGS-09288500 59.0
6/9/1948 0:00 USGS-09288500 51.0
6/9/1948 0:00 USGS-09288500 51.0
9/29/1948 0:00 USGS-09288500 51.0
9/29/1948 0:00 USGS-09288500 51.0
9/10/1949 0:00 USGS-09288500 40.0
5/19/1941 0:00 USGS-09295000 33.0
6/16/1941 0:00 USGS-09295000 3.4
5/11/1947 0:00 USGS-09295000 42.0
6/22/1947 0:00 USGS-09295000 32.0
9/20/1947 0:00 USGS-09295000 97.0
6/9/1948 0:00 USGS-09295000 37.0
9/29/1948 0:00 USGS-09295000 126.0
9/10/1949 0:00 USGS-09295000 93.0
[429 rows x 2 columns]
我想生成一个Pandas数据帧,如下所示:
^{pr2}$我相信可以使用Pandas中的多索引功能来实现这一点。到目前为止,我已经研究了以下stackoverflow问题,以帮助匹配日期和使用索引进行操作:
我认为第二个链接使用unstacking多索引非常接近,如果我愿意聚合的话,我也许可以执行此操作,但我正在尝试避免这种情况。在
这项技术适用于那些想用季节趋势分析数据的人,例如比较同一天或接近同一天的河流流量或累积降水量或温度。在
这个方法有点混乱,但我正在尝试使它更健壮,以解释丢失的数据。在
首先,我们将删除数据中的重复项,然后将日期转换为熊猫时间戳:
然后,让我们对DataFrame进行排列,使其在一组唯一的日期上建立索引(列将是位置id):
^{pr2}$我已经将值填充到前面,以使结果更可靠。您可能需要限制可能提前填充的天数(例如.ffill(limit=30))。在
现在我们可以将此数据帧移动365个日期:
将df2和df2\u lagged的样本位置叠加:
现在将滞后数据合并到df2。数据帧具有完全相同的结构,因此您只需复制值:
最后,交换位置和日期并重命名列:
将60天的延迟用于示例数据:
仅在位置ID上建立索引:
相关问题 更多 >
编程相关推荐