Как преобразовать метку времени в строку в Python - PullRequest
0 голосов
/ 01 мая 2019

У меня проблема со следующим кодом.Я получаю сообщение об ошибке «Аргумент strptime () 1 должен быть str, а не Timestamp»

Я предполагаю, что мне нужно преобразовать дату из метки времени в строку, но я не знаю, что делать.

class TweetAnalyzer:

    def tweets_to_data_frame(self,ElonMuskTweets):

        df = pd.DataFrame(data=[tweet.text for tweet in ElonMuskTweets],columns=['Tweets'])

        df['Text length'] = np.array ([len(tweet.text)for tweet in ElonMuskTweets])
        df['Date and time of creation'] = np.array ([tweet.created_at for tweet in ElonMuskTweets])
        df['Likes'] = np.array ([tweet.favorite_count for tweet in ElonMuskTweets])
        df['Retweets'] = np.array ([tweet.retweet_count for tweet in ElonMuskTweets])

        list_of_dates = []   
        list_of_times = []

        for date in df['Date and time of creation']:

            date_time_obj = datetime.strptime(date, '%Y-%m-%d %H:%M:%S') 
            list_of_dates.append(date_time_obj.date())  
            list_of_times.append(date_time_obj.time())

            df['Date'] = list_of_dates
            df['Time'] = list_of_times

            df['Date'] = pd.to_datetime(df['Date'])

            start_date = '2018-04-13'
            end_date = '2019-04-13'

            mask1 = (df['Date'] >= start_date) & (df['Date'] <= end_date)
            MuskTweets18_19 = df.loc[mask1]  

            return MuskTweets18_19.to_csv ('elonmusk_tweets.csv',index=False)

Я получаю ошибку в

date_time_obj = datetime.strptime(date, '%Y-%m-%d %H:%M:%S')

Как я могу решить эту проблему?Заранее спасибо

Ответы [ 2 ]

1 голос
/ 01 мая 2019

Если указано, что аргумент strptime () 1 должен быть str, а не Timestamp), вероятно, у вас уже есть объект pandas.Timestamp, т. Е. Это не строка, а разобранная дата,только в формате Pandas, а не в Python.Чтобы преобразовать, используйте это:

date_time_obj = date.to_pydatetime()

вместо date_time_obj = datetime.strptime(date, '%Y-%m-%d %H:%M:%S')

0 голосов
/ 01 мая 2019

Можете ли вы привести тип данных к строке для выполнения этого вычисления?

date_time_obj = datetime.strptime(str(date), '%Y-%m-%d %H:%M:%S') 
...