मेरे पास डेटाफ्रेम है:

            A    B   C
date
2021-01-01  1    nan 1
2021-01-23  nan  1   1
2021-02-03  1    nan 1

मैं हर महीने की शुरुआत में सभी कॉलम में "1" कैसे जोड़ सकता हूं? (ध्यान दें कि मैं इसे त्रैमासिक रूप से भी करना चाहता हूं) डेटाफ्रेम को इस तरह दिखना चाहिए:

            A   B   C
date
2021-01-01  2   nan 2
2021-01-23  nan 1   1
2021-02-01  nan 1   1
2021-02-03  1   nan 1

महीने की शुरुआत में पिछले महीने के अंतिम उदाहरण के स्थान पर "नान" होना चाहिए।

0
MathMan 99 26 जिंदा 2022, 21:04
2021-02-01 के लिए A कॉलम NaN क्यों है?
 – 
Corralien
26 जिंदा 2022, 21:08
यह सिर्फ डेटा कैसा है। कृपया संपादित प्रश्न की जाँच करें। आपको धन्यवाद
 – 
MathMan 99
26 जिंदा 2022, 21:09
ध्यान दें कि उदाहरण डेटा के साथ काम करना आसान है यदि आप ऐसी कोई चीज़ शामिल करते हैं जिसे आसानी से कॉपी और पेस्ट किया जा सकता है, जैसे सीएसवी।
 – 
shadowtalker
26 जिंदा 2022, 21:10
1
आप 2021-02-01 nan 1 1 की अपेक्षा क्यों करते हैं 2021-02-01 nan 2 2 की नहीं? क्योंकि यह एक महीने की शुरुआत है। या आपने पंक्ति जोड़ दी क्योंकि यह इनपुट डेटा से गायब है?
 – 
smagnan
26 जिंदा 2022, 21:19
प्रत्येक महीने की शुरुआत पिछले महीने के अंतिम इनपुट का अनुसरण करती है।
 – 
MathMan 99
26 जिंदा 2022, 21:21

2 जवाब

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

IIUC तर्क, आप कर सकते हैं:

# ensure datetime
df.index = pd.to_datetime(df.index)

# fill missing starts of month
idx = pd.date_range(df.index.min(), df.index.max(), freq='MS')
df = df.reindex(df.index.union(idx))

# update starts of month
prev = df.shift(1).loc[idx] # get last data of previous month
df.loc[idx] = df.loc[idx].add(1).combine_first(prev) # increment/fill

आउटपुट:

              A    B    C
2021-01-01  2.0  NaN  2.0
2021-01-23  NaN  1.0  1.0
2021-02-01  NaN  1.0  1.0
2021-02-03  1.0  NaN  1.0
2
mozway 26 जिंदा 2022, 21:30
मैं त्रैमासिक के लिए किस आवृत्ति का उपयोग करूंगा?
 – 
MathMan 99
26 जिंदा 2022, 21:40
1
आपका मतलब महीने के स्थान पर है? मेरे सिर के ऊपर से मैं 'क्यूएस' कहूंगा लेकिन बेहतर होगा कि डॉक्टर की जांच करें।
 – 
mozway
26 जिंदा 2022, 21:41
1
 – 
mozway
26 जिंदा 2022, 21:44
शुक्रिया! यह पूरी तरह से काम किया
 – 
MathMan 99
26 जिंदा 2022, 21:49
df[(df.index.is_month_end) & (df.index >= df.first_valid_index())]+=1

ढ़ूँढ निकाला। और, तिमाही के लिए, यह .is_quarter_end होगा

0
MathMan 99 26 जिंदा 2022, 21:28
यह आपके उपयोग के मामले के लिए काम कर सकता है, लेकिन ऐसा लगता है कि यह आपके द्वारा पूछे गए प्रश्न का उत्तर नहीं देता है।
 – 
shadowtalker
26 जिंदा 2022, 21:29