Hướng dẫn how do i convert a timestamp to a string in python? - làm cách nào để chuyển đổi dấu thời gian thành chuỗi trong python?

Tôi có một vấn đề với mã sau. Tôi nhận được một lỗi "Đối số Strptime () phải là str, không phải dấu thời gian"

Tôi đoán rằng những gì tôi nên làm là chuyển đổi ngày từ dấu thời gian sang chuỗi nhưng tôi không biết phải làm gì.

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)

Tôi nhận được lỗi trong

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

Làm thế nào tôi có thể giải quyết prolem này? Cảm ơn bạn trước

Hướng dẫn how do i convert a timestamp to a string in python? - làm cách nào để chuyển đổi dấu thời gian thành chuỗi trong python?

Benvc

Huy hiệu vàng 14K431 Huy hiệu bạc51 Huy hiệu đồng4 gold badges31 silver badges51 bronze badges

Đã hỏi ngày 1 tháng 5 năm 2019 lúc 19:26May 1, 2019 at 19:26

2

Bạn có thể ép buộc kiểu dữ liệu thành một chuỗi để thực hiện tính toán này không?

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

Đã trả lời ngày 1 tháng 5 năm 2019 lúc 19:53May 1, 2019 at 19:53

Hướng dẫn how do i convert a timestamp to a string in python? - làm cách nào để chuyển đổi dấu thời gian thành chuỗi trong python?

1

Nếu nó nói "Đối số Strptime () 1 phải là Str, không phải dấu thời gian", có khả năng bạn đã có đối tượng ____10, tức là, nó không phải là một chuỗi mà là một ngày phân tích cú pháp, chỉ có ở định dạng của Pandas, không phải là Python. Vì vậy, để chuyển đổi, sử dụng điều này:

date_time_obj = date.to_pydatetime()

thay vì

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

Đã trả lời ngày 1 tháng 5 năm 2019 lúc 19:58May 1, 2019 at 19:58

Hướng dẫn how do i convert a timestamp to a string in python? - làm cách nào để chuyển đổi dấu thời gian thành chuỗi trong python?

adrtamadrtamadrtam

6.6632 huy hiệu vàng11 Huy hiệu bạc27 Huy hiệu đồng2 gold badges11 silver badges27 bronze badges

Nếu đối tượng là dấu thời gian Python, bạn có thể thực hiện:

timestamp = Timestamp('2017-11-12 00:00:00')

str_timestamp = str(timestamp)

Đã trả lời ngày 28 tháng 3 lúc 15:01Mar 28 at 15:01

Hướng dẫn how do i convert a timestamp to a string in python? - làm cách nào để chuyển đổi dấu thời gian thành chuỗi trong python?

1

Chỉ cần thêm vào các câu trả lời trên khi chạy vào đầu dò sau bằng các giải pháp được cung cấp:

AttributeError: module 'datetime' has no attribute 'strptime'

Dựa trên câu trả lời được tìm thấy ở đây, bạn cần phải ép thời gian vào một chuỗi như thế này:

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

Hoặc đảm bảo nhập lớp chứ không chỉ các mô -đun như thế này:

from datetime import datetime

Đã trả lời ngày 28 tháng 6 lúc 19:52Jun 28 at 19:52

Hướng dẫn how do i convert a timestamp to a string in python? - làm cách nào để chuyển đổi dấu thời gian thành chuỗi trong python?

import pandas as pd
import datetime

base = pd.to_datetime("2022-10-10")
date_list = [datetime.datetime.strftime(pd.to_datetime(base - datetime.timedelta(days=x)),"%Y-%m-%d") for x in range(7)]
print(date_list)

đầu ra sẽ được

['2022-10-10',
 '2022-10-09',
 '2022-10-08',
 '2022-10-07',
 '2022-10-06',
 '2022-10-05',
 '2022-10-04']

Đã trả lời ngày 10 tháng 10 lúc 17:42Oct 10 at 17:42