web-dev-qa-db-ja.com

Pythonでタイムスタンプを文字列に変換する方法

次のコードに問題があります。 「strptime()引数1はタイムスタンプではなくstrでなければならない」というエラーが表示されます

私がすべきことは日付をタイムスタンプから文字列に変換することですが、私は何をすべきかわかりません。

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')

この問題を解決するにはどうすればよいですか?前もって感謝します

3

この計算を実行するために、データ型を文字列に強制変換できますか?

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

「strptime()引数1はTimestampではなくstrでなければならない」と表示されている場合は、すでに _pandas.Timestamp_ オブジェクトを持っている可能性があります。つまり、文字列ではなく解析された日付時刻です。それはPandasのフォーマットであり、Pythonのフォーマットではありません。変換するには、これを使用します:

_date_time_obj = date.to_pydatetime()
_

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

1
adrtam