我有一堆倾卸式雨量计数据,我需要校准,其中有多个不同时间段的校准系数。我一直在这样做:
data = pd.Series(range(100), pd.date_range('1950-01-01', freq='d', periods=100))
data.ix[:'2000-01-01'] *= CF1
data.ix['2000-01-02':'2000-05-12'] *= CF2
.
.
.
data.ix['2015-02-23':] *= CFn
我工作的每个电台。我想用这样的字典来应用这些:
calibrations = {"Station1": [(slice(None), '2000-01-01', CF1),
('2000-01-02', '2000-05-12', CF2),
...]}
for station in calibrations:
for start,end,cf in calibrations[station]:
data.ix[start:end, station] *= cf
将校准信息保存在可以导入的dict或csv文件中,这将更加简洁和易于维护。你知道吗
如何以一种通用的方式对带有DatetimeIndex的序列进行切片,这种方法可以解释开始和结束时间段,而不必对数据的开始和结束执行data.ix[:timestamp]
和data.ix[timestamp:]
?你知道吗
我尝试了data.ix[slice(None):timestamp]
作为记录的开头,但是需要一个时间戳或可转换的字符串。你知道吗
希望这是有意义的任何帮助将被感激。你知道吗
为了将来的参考,我用
None
替换了slice(None)
来解决我的问题 它允许我使用相同的.ix[start:end]
语法来表示序列的开始或结束,使用None
而不是表示最后一个时间戳的字符串。你知道吗你可以试试看lambda函数。。。或从索引中创建列(从另一篇文章中获取):
或者“where”函数。 我需要为你进一步调查这个问题(一个有趣的问题)。你知道吗
相关问题 更多 >
编程相关推荐