有没有办法重新排序重复索引,以便它们累积出现?
Is there a way to re-order duplicate index so that they appear cumulatively?
我使用以下方法复制了一个数据框:
Portfolio_rtns.loc[Portfolio_rtns.index.repeat(2)]
虽然我想从这里开始:
ZS PANW FTNT JNPR BAH OKTA AKAM
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-18 0.016419 0.001707 0.005635 0.009774 -0.001225 0.007277 0.021677
对此:
ZS PANW FTNT JNPR BAH OKTA AKAM
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.00719
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-18 0.016419 0.001707 0.005635 0.009774 -0.001225 0.007277 0.021677
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
...
我该怎么做? sort_index
和 sort_values
似乎对重复项没有多大帮助。
使用np.tile
:
>>> df.loc[np.tile(df.index, 2)]
ZS PANW FTNT JNPR BAH OKTA AKAM
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-18 0.016419 0.001707 0.005635 0.009774 -0.001225 0.007277 0.021677
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-18 0.016419 0.001707 0.005635 0.009774 -0.001225 0.007277 0.021677
设置MRE
data = \
{'ZS': {'2019-06-14': -0.025715, '2019-06-17': -0.011974, '2019-06-18': 0.016419},
'PANW': {'2019-06-14': -0.01061, '2019-06-17': 0.008412, '2019-06-18': 0.001707},
'FTNT': {'2019-06-14': -0.011748, '2019-06-17': -0.015586, '2019-06-18': 0.005635},
'JNPR': {'2019-06-14': -0.010033, '2019-06-17': -0.001501, '2019-06-18': 0.009774},
'BAH': {'2019-06-14': 0.005554, '2019-06-17': 0.001534, '2019-06-18': -0.001225},
'OKTA': {'2019-06-14': -0.01074, '2019-06-17': -0.008918, '2019-06-18': 0.007277},
'AKAM': {'2019-06-14': -0.007198, '2019-06-17': -0.025948, '2019-06-18': 0.021677}}
df = pd.DataFrame(data)
我使用以下方法复制了一个数据框:
Portfolio_rtns.loc[Portfolio_rtns.index.repeat(2)]
虽然我想从这里开始:
ZS PANW FTNT JNPR BAH OKTA AKAM
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-18 0.016419 0.001707 0.005635 0.009774 -0.001225 0.007277 0.021677
对此:
ZS PANW FTNT JNPR BAH OKTA AKAM
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.00719
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-18 0.016419 0.001707 0.005635 0.009774 -0.001225 0.007277 0.021677
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
...
我该怎么做? sort_index
和 sort_values
似乎对重复项没有多大帮助。
使用np.tile
:
>>> df.loc[np.tile(df.index, 2)]
ZS PANW FTNT JNPR BAH OKTA AKAM
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-18 0.016419 0.001707 0.005635 0.009774 -0.001225 0.007277 0.021677
2019-06-14 -0.025715 -0.010610 -0.011748 -0.010033 0.005554 -0.010740 -0.007198
2019-06-17 -0.011974 0.008412 -0.015586 -0.001501 0.001534 -0.008918 -0.025948
2019-06-18 0.016419 0.001707 0.005635 0.009774 -0.001225 0.007277 0.021677
设置MRE
data = \
{'ZS': {'2019-06-14': -0.025715, '2019-06-17': -0.011974, '2019-06-18': 0.016419},
'PANW': {'2019-06-14': -0.01061, '2019-06-17': 0.008412, '2019-06-18': 0.001707},
'FTNT': {'2019-06-14': -0.011748, '2019-06-17': -0.015586, '2019-06-18': 0.005635},
'JNPR': {'2019-06-14': -0.010033, '2019-06-17': -0.001501, '2019-06-18': 0.009774},
'BAH': {'2019-06-14': 0.005554, '2019-06-17': 0.001534, '2019-06-18': -0.001225},
'OKTA': {'2019-06-14': -0.01074, '2019-06-17': -0.008918, '2019-06-18': 0.007277},
'AKAM': {'2019-06-14': -0.007198, '2019-06-17': -0.025948, '2019-06-18': 0.021677}}
df = pd.DataFrame(data)