当前位置: 首页 > 知识库问答 >
问题:

按月份筛选CSV,并使用该月份的数据创建新的CSV

储毅
2023-03-14

每次在“调用解析时间”列中有一个新的月份,我都希望用那个月份和年份创建一个新的csv文件。对于包含那个月份和年份的所有行,都要过滤到那个新的csv中。

这样地:

所有数据。csv

Call Resolve Time   Priority    Overall Result
8/6/2015                  P4    F
5/13/2015                 P4    F
4/28/2015                 P4    P
5/13/2015                 P4    F
5/27/2015                 P4    F

新文件于2015年5月发布。从所有数据创建csv。仅限2015年5月20日的csv数据

Call Resolve Time   Priority    Overall Result
    5/13/2015                 P4    F
    5/13/2015                 P4    F
    5/27/2015                 P4    F

到目前为止,我有这个,但我必须为每年和每月手动创建一些东西:

reader = csv.reader(open(r"alldata.csv"), delimiter=',') 
filtered = filter(lambda p: '5/27/15' == p[1], reader) 
csv.writer(open(r"May-2015.csv",'w'),delimiter=',').writerows(filtered)

编辑---------------------------------------------------------------------------

# say, reader is the reader object
# do next(reader) to skip the headings
import csv
from itertools import groupby

reader = csv.reader(open(r"alldata.csv"), delimiter=',')

def by_month (row):
    date = row[7] 
    month = int(date.split("/", 1)[0])
    return month

m_g = groupby(reader, by_month)

for month, group in m_g:
    group = list(group)
    # use a month to month_name map
    with open('{}.csv'.format(month), 'w') as fw:
        w = csv.writer(fw)
        w.writerows(group)

手动添加日期:

def by_month(row):
    date = '5/9/2016'
    month = int(date.split("/", 1)[0])
    return month

共有1个答案

闽承望
2023-03-14

试试以下方法,

# say, reader is the reader object
# do next(reader) to skip the headings
from itertools import groupby
def by_month(row):
    date = row[0] 
    month = int(date.split("/", 1)[0])
    return month

m_g = groupby(reader, by_month)

for month, group in m_g:
    group = list(group)
    # use a month to month_name map
    with open('{}.csv'.format(month), 'w') as fw:
        w = csv.writer(fw)
        w.writerows(group)

如果某件事不起作用,请发表评论。

 类似资料:
  • 问题内容: 如何使用月/年从表中获取记录?我有一张这样的桌子: 是项目的截止日期,我想要对应于月份/年份的记录,而不是完整的日期,我的意思是特定月份的记录。 我该如何在mysql中做到这一点? 问题答案: 只需使用MONTH()和YEAR()即可:

  • 我有一个每日数据集。我只需要获得数据集中每个月的第一天的数据(数据是从1972年到2013年)。例如,我需要提取的索引,日期值。我的问题是每个月的第一天是不同的,因此我不能使用诸如之类的步骤,我该如何从数据集中提取这些值? 有没有类似的命令,我在另一个职位上发现的R? R-XTS:从缺少行的每日时间序列中获取每个月的第一个日期和值

  • 我正在尝试使用angular-用户界面-datepicker作为月份选择器。但是不能配置它,尝试了所有。这是PLUNKER。 我试图将模式设置为 也是:datepicker选项的一部分,使用JS作为 但这也不管用请帮帮忙

  • 问题内容: 我正在处理Java作业,它涉及在用户指定月份和年份之后打印日历。我不能使用Calendar或GregorianCalendar类。我的问题是日历在星期六的第一天无法正确打印月份。我已经看了大约一个小时的代码,但不确定出什么问题。我正在使用Zeller的Congruence查找以“ h”表示的每月的第一天。 例如,2008年3月的日历(错误地)如下所示: 这是我的代码: 问题答案: 从星

  • 我有以下数据框: 我需要按年和月分组数据。即:按2013年1月、2013年2月、2013年3月等分组...我将使用新分组的数据来创建一个显示每年/每月abc vs xyz的图表。 我尝试过groupby和sum的各种组合,但似乎没有任何效果。 谢谢你的帮助。

  • 问题内容: 如何在SELECT中查找一年中的第一天? 我找到了这个月份-但是我没有足够的掌握年份的信息:(我一直在寻找一个单独的查询来查找月份开始和现在之间的数据) 问题答案: 我认为您需要: 老实说,您可以执行以下操作: