2013-06-19 6 views
6

मेरे पास दो कॉलम के साथ डेटाफ्रेम है। एक कॉलम टाइमस्टैम्प से भरा होता है, अन्य कॉलम में उसी पंक्ति में टाइमस्टैम्प के यूटीसी के घंटों में ऑफसेट होता है।पैंडस डेटाफ्रेम में टाइमस्टैम्प का ऑफ़सेट कैसे सेट करें?

DataFrame इस तरह दिखता है:

In [44]: df 
Out[44]: 
        DATETIME OFFSET 

0 2013-01-01 00:00:00+01:00  1 
1 2013-01-01 01:00:00+01:00  1 
2 2013-01-01 02:00:00+01:00  1 
3 2013-01-01 03:00:00+01:00  1 
4 2013-01-01 04:00:00+01:00  1 
5 2013-01-01 05:00:00+01:00  1 
6 2013-01-01 06:00:00+02:00  2 
7 2013-01-01 07:00:00+02:00  2 
8 2013-01-01 08:00:00+02:00  2 

मैं tzinfo को बदलने के लिए के साथ करने की कोशिश की लेकिन असफल है:

In [44]: df 
Out[44]: 
        DATETIME OFFSET 

0 2013-01-01 00:00:00+00:00  1 
1 2013-01-01 01:00:00+00:00  1 
2 2013-01-01 02:00:00+00:00  1 
3 2013-01-01 03:00:00+00:00  1 
4 2013-01-01 04:00:00+00:00  1 
5 2013-01-01 05:00:00+00:00  1 
6 2013-01-01 06:00:00+00:00  2 
7 2013-01-01 07:00:00+00:00  2 
8 2013-01-01 08:00:00+00:00  2 

क्या मैं प्राप्त करने के लिए चाहते टाइमस्टैम्प में जोड़ने के लिए प्रति पंक्ति ऑफसेट है एक उचित समाधान खोजने के लिए। मैं निम्नलिखित (छद्म कोड) जैसे कुछ के बारे में सोच रहा हूं:

df.apply(lambda x: x['DATETIME'].replace(tzinfo=pytz.utc + x['OFFSET']) 

किसी भी मदद की सराहना की जाती है।

धन्यवाद, थॉमस

+1

ऐसा लगता है कि आप 't1.tz_convert (9)' (लेकिन यह काम नहीं करता है!) –

उत्तर

6

ऐसा लगता है कि pytz.FixedOffset की तरह इस उद्देश्य फिट बैठता है।

In [39]: df.apply(lambda x: pd.Timestamp(x['DATETIME'], tz=pytz.FixedOffset(60*x['OFFSET'])), axis=1) 
Out[39]: 
0 2013-01-01 00:00:00+01:00 
1 2013-01-01 01:00:00+01:00 
2 2013-01-01 02:00:00+01:00 
3 2013-01-01 03:00:00+01:00 
4 2013-01-01 04:00:00+01:00 
5 2013-01-01 05:00:00+01:00 
6 2013-01-01 06:00:00+02:00 
7 2013-01-01 07:00:00+02:00 
8 2013-01-01 08:00:00+02:00 
dtype: object 

यहां के आसपास के लोग समय की तुलना में अधिक समय श्रृंखला का उपयोग करते हैं, इसलिए यह सबसे अच्छा अभ्यास नहीं हो सकता है।

+0

धन्यवाद दान, मैं जो कर रहा हूं उसके लिए एक आकर्षण और पर्याप्तता की तरह काम करता है। – THM

संबंधित मुद्दे