में समय आवृत्ति बदलना मेरे पास नीचे एक पांडस डेटाफ्रेम है।पांडस डेटाफ्रेम
df
A B
date_time
2014-07-01 06:03:59.614000 62.1250 NaN
2014-07-01 06:03:59.692000 62.2500 NaN
2014-07-01 06:13:34.524000 62.2500 241.0625
2014-07-01 06:13:34.602000 62.2500 241.5000
2014-07-01 06:15:05.399000 62.2500 241.3750
2014-07-01 06:15:05.399000 62.2500 241.2500
2014-07-01 06:15:42.004000 62.2375 241.2500
2014-07-01 06:15:42.082000 62.2375 241.3750
2014-07-01 06:15:42.082000 62.2375 240.2500
मैं नियमित 1 minute
अंतराल को यह की आवृत्ति बदलना चाहते हैं। लेकिन नीचे दी गई त्रुटि प्राप्त करें:
new = df.asfreq('1Min')
>>error: cannot reindex from a duplicate axis
अब, मैं समझता हूं कि यह क्यों हो रहा है। चूंकि मेरा समय ग्रैन्युलरिटी उच्च है (मिलीसेकंड में) लेकिन अनियमित, मुझे प्रति सेकेंड भी प्रति सेकंड कई रीडिंग मिलते हैं। इसलिए मैंने इन मिलीसेकंद रीडिंग को मिनटों में गठबंधन करने और नीचे दिए गए डुप्लिकेट से छुटकारा पाने की कोशिश की।
# try to convert the index to minutes and drop duplicates
df['index'] = df.index
df['minute_index']= df['index'].apply(lambda x: x.strftime('%Y-%m-%d %H:%M'))
df.drop_duplicates(cols = 'minute_index', inplace = True, take_last = True)
df_by_minute = df.set_index('minute_index')
df_by_minute
A B index
minute_index
2014-07-01 06:03 62.2500 NaN 2014-07-01 06:03:59.692000
2014-07-01 06:13 62.2500 241.50 2014-07-01 06:13:34.602000
2014-07-01 06:15 62.2375 240.25 2014-07-01 06:15:42.082000
# now change the frequency to 1 minute but I just get NaNs (!)
df_by_minute.asfreq('1Min')
A B index
2014-07-01 06:03:00 NaN NaN NaT
2014-07-01 06:04:00 NaN NaN NaT
2014-07-01 06:05:00 NaN NaN NaT
2014-07-01 06:06:00 NaN NaN NaT
2014-07-01 06:07:00 NaN NaN NaT
2014-07-01 06:08:00 NaN NaN NaT
2014-07-01 06:09:00 NaN NaN NaT
2014-07-01 06:10:00 NaN NaN NaT
2014-07-01 06:11:00 NaN NaN NaT
2014-07-01 06:12:00 NaN NaN NaT
2014-07-01 06:13:00 NaN NaN NaT
2014-07-01 06:14:00 NaN NaN NaT
2014-07-01 06:15:00 NaN NaN NaT
जैसा कि आप देखते हैं कि यह काम नहीं करता .. क्या कोई मदद कर सकता है? जो मैं प्राप्त करने की कोशिश कर रहा हूं वह एक ऐसा कार्य प्राप्त करना है जो A or B as of DateTime
लौटाता है और डेटटाइम 1 मिनट की वृद्धि में होगा।
धन्यवाद! काफी निराशाजनक है कि मैंने इस समारोह को पूरी तरह से अनदेखा किया। – Rhubarb