ValueError в кадре данных при попытке извлечь день, месяц и год с использованием библиотеки datetime python - PullRequest
0 голосов
/ 29 мая 2020

У меня есть три столбца в моем фрейме данных: время публикации твита (UT C), контент твита и местоположение твита. В столбце «Время публикации твита (UT C)» есть объект даты в формате: 31 марта 2020 г., 10: 49: 01

Моя цель - переформатировать фрейм данных таким образом, чтобы сообщение «Твит отправлен» В столбце Time (UT C) 'отображаются только день, месяц и год (например, 31-03-2020), чтобы иметь возможность построить график временного ряда, но мои попытки приводят к ошибке, указанной ниже.

ValueError: time data '0 31 марта 2020 г. 10: 49: 01 \ n1 31 марта 2020 г. 05: 48: 43 \ n2 30 марта 2020 г. 05: 38: 50 \ n3 29 марта 2020 г. 21: 19: 23 \ n4 29 марта 2020 20:28: 22 \ n ... \ n2488 02 января 2018 13: 36: 07 \ n2489 02 января 2018 10: 33: 21 \ n2490 01 января 2018 12:23: 47 \ n2491 01 января 2018 06 : 03: 51 \ n2492 01 января 2018 г. 02: 09: 15 \ nИмя: Время публикации твита (UT C), длина: 2451, dtype: object 'не соответствует формату'% d% b% Y% H:% M:% S '

Мой код ниже, скажите, пожалуйста, что я делаю не так?

from datetime import datetime
import pandas as pd
import re #regular expression
from textblob import TextBlob
import string
import preprocessor as p


pd.set_option("expand_frame_repr", False)

df1 = pd.read_csv("C:/tweet_data.csv")

dataType = df1.dtypes
print(dataType)

# convert datetime object to string
old_formatDate = str(df1['Tweet Posted Time (UTC)'])

# extract day, month, and year and convert back to datetime object
date_TimeObject = datetime.strptime(old_formatDate, '%d %b %Y %H:%M:%S')
new_formatDate = date_TimeObject.strftime('%d-%m-%Y')
print(new_formatDate)

1 Ответ

0 голосов
/ 30 мая 2020

Я исследовал и решил проблему, изменив фрейм данных на серию панда, а затем на формат datetime. Затем применил dt.strftime.

df.columns = ['Tweet_Posted_Time', 'Tweet_Content', 'Tweet_Location']
print(df)

# Convert the date and time column (Tweet_Posted_Time) from panda data frame to Panda Series
df1 = pd.Series(df['Tweet_Posted_Time'])
print(df1)

# Convert the Panda Series to datetime format
df1 = pd.to_datetime(df1)
print(df1)

# convert the date column to new date format
df1 = df1.dt.strftime('%d-%m-%Y')
print(df1)

# Replace the Column "Tweet_Posted_Time" in the original data frame with the new data frame containing new date format
df.assign(Tweet_Posted_Time=df1)````
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...