使用datetime包将日期与时间转换为仅日期。

时间:2016-03-14 23:58:38

标签: python datetime dictionary

我的功能是从一个文件中读取数据,该文件包含编写推文的日期,以及被分类为的情绪(好的,坏的或中立的);选择日期和时间,以及开始和结束日期之间的情绪;最后创建三个词典(正面,负面和中性),使用日期作为关键,以及一天内发布的正面,负面或中性推文的数量。

我遇到的问题是:

a)我如何只显示日期,而不是日期和时间?

b)如何让我的程序包含开始日期和结束日期?

c)如何在字典中用分号分隔键和值?

def get_sentiment_dates(start_date, end_date):
    positive_dict = {}
    negative_dict = {}
    neutral_dict = {}
    f = open("BAC2_answer.csv", "r")
    tweets = f.readlines()
    bin_use =[]
    bin_trash =[]
    bin_use_senti = []
    bin_trash_senti = []
    start_date_obj = datetime.strptime(start_date, '%Y-%m-%d')
    end_date_obj = datetime.strptime(end_date, '%Y-%m-%d')
    for i in tweets:
        specs = i.split(',')
        t_and_d = specs[0]
        dt_obj = datetime.strptime(t_and_d, "%Y-%m-%d %H:%M:%S")
        chars_body = specs[1].strip()
        if ((dt_obj >= start_date_obj) and dt_obj <= (end_date_obj)):
            bin_use.append(dt_obj)
            bin_use_senti.append(chars_body)
        else:
            bin_trash.append(dt_obj)
            bin_trash_senti.append(chars_body)
    num_of_pos = 0
    num_of_neg = 0
    num_of_neut = 0
    for i,j in zip(bin_use, bin_use_senti):
        if j == 'Bullish':
            num_of_pos +=1
            positive_dict = (i, num_of_pos)
        elif j == 'Bearish':
            num_of_neg+=1
            negative_dict = (i, num_of_neg)
        else:
            num_of_neut+=1
            neutral_dict = (i, num_of_neut)
    # print str(positive_dict) + "," + str(negative_dict) + "," + str(neutral_dict)
    f.close()
    return [positive_dict,negative_dict,neutral_dict]

0 个答案:

没有答案