如何在 Python 中将时间戳转换为字符串
How to convert timestamp into string in Python
我对以下代码有疑问。我得到一个错误 "strptime() argument 1 must be str, not 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')
我该如何解决这个问题?
提前谢谢你
能否将数据类型强制转换为字符串以执行此计算?
date_time_obj = datetime.strptime(str(date), '%Y-%m-%d %H:%M:%S')
如果显示 "strptime() argument 1 must be str, not Timestamp",可能您已经有了 pandas.Timestamp
对象,即它不是字符串而是解析的日期时间,只是它在 Pandas 中格式,而不是 Python 的格式。所以要转换,使用这个:
date_time_obj = date.to_pydatetime()
而不是date_time_obj = datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
如果对象是一个Python时间戳,你可以实现:
timestamp = Timestamp('2017-11-12 00:00:00')
str_timestamp = str(timestamp)
我对以下代码有疑问。我得到一个错误 "strptime() argument 1 must be str, not 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')
我该如何解决这个问题? 提前谢谢你
能否将数据类型强制转换为字符串以执行此计算?
date_time_obj = datetime.strptime(str(date), '%Y-%m-%d %H:%M:%S')
如果显示 "strptime() argument 1 must be str, not Timestamp",可能您已经有了 pandas.Timestamp
对象,即它不是字符串而是解析的日期时间,只是它在 Pandas 中格式,而不是 Python 的格式。所以要转换,使用这个:
date_time_obj = date.to_pydatetime()
而不是date_time_obj = datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
如果对象是一个Python时间戳,你可以实现:
timestamp = Timestamp('2017-11-12 00:00:00')
str_timestamp = str(timestamp)