gpt4 book ai didi

python - 重新组织 CSV,使日期不是列标题

转载 作者:太空狗 更新时间:2023-10-30 01:28:55 25 4
gpt4 key购买 nike

我正在尝试重新组织 excel 表(或 csv),以便日期不再是列标题。我使用有限的 python 知识来尝试执行此操作,但由于不知道从哪里开始,我可以使用一些帮助。

在每个日期的下面是对特定地点当天发生的事情的记录。可以跳过空值。某些单元格包含“--”并且可以转换为 0。我想为日期创建一列,并为当天的数字读数创建一列。地名如果当天被监控,则为新一行。

示例(向以这种方式开始的人致敬):

Name,7/1/2009,7/2/2009,7/3/2009,7/4/2009..... (and so on to the present)
Place A,,5,3,
Place B,0,,23,--
Place C,1,2,,35

我想要的是:

Name, Date, Reading
Place A, 7/2/2009, 5
Place A, 7/3/2009, 3
Place B, 7/1/2009, 0
Place B, 7/4/2009, 0 <--- Even though this is a dash originally it can be converted to a 0 to keep the number an int.

有数百行(地点)和列(日期)已达到 BPD(正确的 1772 列!)。

最佳答案

您要做的是规范化为表格。

通常执行此操作的方法是:对于非正规表中的每一行,将行插入到正规表中的每个非正规列。

具体执行此操作的方式取决于您处理表格的方式。例如,如果您在 Python 3.x 中使用 csv 模块,使用 Excel-default-dialect CSV 文件,它会像这样:

with open('old.csv') as oldcsv, open('new.csv', 'w') as newcsv:
r, w = csv.reader(oldcsv), csv.writer(newcsv)
header = next(r)
w.writerow(['Name', 'Date', 'Reading'])
for row in r:
for colname, colval in zip(header[1:], row[1:]):
w.writerow([row[0], colname, colval])

如果你想使用,例如,xlrd/xlwtXlsxReader/XlsxWriter win32com Excel等的脚本,细节会有所不同,但基本思路是一样的:遍历行,然后遍历日期列,根据名称为每一行生成一个新行来自行、来自列标题的日期和来自行的值。

并且您应该能够从此处了解如何跳过空值、将 "--" 转换为 0 等。

关于python - 重新组织 CSV,使日期不是列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25574422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com