मैं सोच रहा हूं कि श्रृंखला/फ्रेम लेने के लिए एक संक्षिप्त, प्रसारण तरीका है या नहीं:

>>> print(pd.DataFrame({'a': [5, 10, 9, 11, 13, 14, 12]}, index=pd.date_range('2020-12-01', periods=7)))
             a
2020-12-01   5
2020-12-02  10
2020-12-03   9
2020-12-04  11
2020-12-05  13
2020-12-06  14
2020-12-07  12

... और इसे इसमें बदल दें:

>>> print(pd.DataFrame({'a': [5, 9, 9, 11, 12, 12, 12]}, index=pd.date_range('2020-12-01', periods=7)))
             a
2020-12-01   5
2020-12-02   9
2020-12-03   9
2020-12-04  11
2020-12-05  12
2020-12-06  12
2020-12-07  12

NB: महत्वपूर्ण हिस्सा यह है कि सबसे हाल का मूल्य रखा जाता है, और पिछले मान जो इससे अधिक हो जाते हैं, उन्हें वर्तमान मूल्य से बदल दिया जाता है, समय के साथ पीछे की ओर चला जाता है, जिसके परिणामस्वरूप संख्याओं की एक नीरस रूप से बढ़ती श्रृंखला होती है जैसे कि कोई भी संशोधन एक संशोधित मूल्य में वृद्धि नहीं करते हैं।

वास्तविक डेटा पदानुक्रमित है और इसमें कई कॉलम हैं, लेकिन मैं कुछ ऐसा शुरू करना चाहता था जिससे मैं अपना सिर प्राप्त कर सकूं:

                            any      full
date       areaCode                      
2020-12-08 E92000001        0.0       0.0
           N92000002        0.0       0.0
           S92000003        0.0       0.0
           W92000004        0.0       0.0
2020-12-09 E92000001    11115.2       0.0
           N92000002      724.6       0.0
           S92000003     3801.8       0.0
           W92000004     1651.4       0.0
...
2021-01-24 E92000001  5727693.0  441684.0
           N92000002   159642.0   22713.0
           S92000003   415402.0    5538.0
           W92000004   270833.0     543.0
2021-01-25 E92000001  5962544.0  443010.0
1
Chris Withers 22 मार्च 2021, 02:49

2 जवाब

सबसे बढ़िया उत्तर

यहाँ एक और तरीका है:

df.sort_index(ascending=False).cummin().sort_index()

             a
2020-12-01   5
2020-12-02   9
2020-12-03   9
2020-12-04  11
2020-12-05  12
2020-12-06  12
2020-12-07  12

मल्टीइंडेक्स के लिए, यह बन जाता है:

df.sort_index(ascending=False).groupby('areaCode').cummin().sort_index()
3
Chris Withers 22 मार्च 2021, 10:14

समय अक्ष को फ़्लिप करना और रोलिंग मिनट करना चाल है:

df.sort_index(ascending = False).rolling(window=1000, min_periods=1).min().sort_index()

का उत्पादन


            a
2020-12-01  5.0
2020-12-02  9.0
2020-12-03  9.0
2020-12-04  11.0
2020-12-05  12.0
2020-12-06  12.0
2020-12-07  12.0
1
piterbarg 22 मार्च 2021, 03:11