在python中索引和选择变量数据

时间:2017-08-28 16:41:40

标签: python dataframe loc

我有一个“日期”列表:

['2017-04-30',
 '2012-09-30',
 '2016-09-30',
 '2012-10-31']

和一系列,'AAPL':

2012-04-30    1170.294527
2012-05-31    1528.785307
2012-06-30    1525.203742
2012-07-31    1408.036492
...
2017-07-31    1830.33231

我正在尝试为列表中的每个给定日期选择接下来的三个日期。例如。对于“日期”中的“2017-04-30”,我想从系列中选择“2017-05-31”,“2017-06-30”和“2017-07-31”。

我的预期输出是选择能够选择列表中日期之后的系列中的3个日期。

2 个答案:

答案 0 :(得分:0)

第一:

  

E.g。对于“日期”中的“2017-04-30”,我想从系列中选择“2017-05-31”,“2017-06-30”和“2017-07-31”。

但你没有'2017-04-30'系列。但没关系。 例如,如果您未设置任何情况:

dates = [
    '2017-04-30',
    '2012-09-30',
    '2016-09-30',
    '2012-10-31'
]

series = [
    '2017-04-30 1170.294527',
    '2017-05-31 1528.785307',
    '2017-06-30 1525.203742',
    '2017-07-31 1408.036492'
]

for d in dates:
    for i, s in enumerate(series):
        if s.split(' ')[0] == d:
            print('{}: {}'.format(d, list([m for m in series])[i:i + 3]))

这可以满足您的需求。 没有系列阵列边框,考虑。 即

series = [
    '2017-04-30 1170.294527',
    '2017-05-31 1528.785307',
    '2017-06-30 1525.203742',
    '2017-07-31 1408.036492'
]

输出将是

2017-04-30: ['2017-05-31 1528.785307', '2017-06-30 1525.203742', '2017-07-31 1408.036492']

代表

series = [
'2017-05-31 1528.785307',
'2017-06-30 1525.203742',
'2017-04-30 1170.294527',
'2017-07-31 1408.036492'
]

输出将是

2017-04-30: ['2017-07-31 1408.036492']

series = [
'2017-05-31 1528.785307',
'2017-06-30 1525.203742',
'2017-07-31 1408.036492',
'2017-04-30 1170.294527'
]

输出将是

2017-04-30: []

答案 1 :(得分:0)

我假设你的两个输入都是日期字符串列表。

spyOn(component, 'someMethod');