从年份的.csv排序/创建列,其中包含附加列中类别的比例

时间:2016-06-23 01:59:14

标签: python sorting datetime pandas

我是python和pandas的新手。我一直在学习如何在线做事并询问一些有经验的程序员。这是我从头开始编写的第一个脚本,所以我为可能缺少的基础知道道歉。对于这个任务,我使用的是jupyter shell和python 2.7。

我有一个按列排序的csv文件。列按index, date, title, text, and category排序。仅列出每月的几个日期。有很多年了。每个文本/日期由重复自己的类别定义。我的目标是按季度对年份进行排序,并且在每个季度我想列出使用pandas和python的类别比例。

我设法用日期时间将日期字符串(YYYYMMDD)转换为日期值(YYYY-MM-DD)并创建一个(从最旧到最新排序)单独的列,并按季度标记行(1 ,2,3,4)在另一栏中,但我需要列出每个季度每个类别的比例比例。理想情况下,我应该有年度季度类别+频率。

所以我刚刚添加了2个新列:一个具有已排序的YYYY-MM-DD格式,并且每个日期都在第二列中用1,2,3或4标记。但是这些列不包含在任何一张桌子上,我都无法为他们创造一个。我想我必须创建一个新的.csv,因为我已经读过我无法写入现有的.csv。我非常确定我应该按年分组行,但我不知道如何回去修复它。我一整天都在努力解决这个问题,而且我甚至不知道从哪里开始解决我的问题。任何指导都会非常感激。谢谢阅读。我的代码:

import pandas as pd
from pandas import DataFrame
import datetime as dt
import numpy as np

df = pd.read_csv('...somefile.csv', delimiter=',', usecols=('Date','Title','Text','Category'), encoding='utf-8')
for line in df:
    df['DateTime'] = pd.to_datetime(df['Date'].astype(str), format='%Y-%m-%d')
    df['DateTime'] = sorted(df['DateTime'])
    df['quarter'] = df['DateTime'].dt.quarter
    print line

0 个答案:

没有答案