使用python将宽格式csv转换为长格式csv

2024-09-24 04:21:44 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中将我的csv数据从宽表格式csv转换为长格式csv有一些困难。目前情况是这样的:

Time Temp1 Temp2 Temp3 Temp4 Temp5
00   21     32   33    21    23
10   34     23   12    08    23
20   12     54   33    54    55

把数据转换成长格式。像这样:

^{pr2}$

任何关于如何在python中解决此类问题的帮助都将非常有用。在


Tags: csv数据time格式情况中将pr2temp2
2条回答

您可以使用csv模块,但逻辑是相同的。在

with open("in.csv") as f,open("out.csv","w") as out:
     headers = next(f).split()[1:]  # keep headers/Time Temp1 Temp2 Temp3 Temp4 Temp5
     for row in f:
        row = row.split()
        time = row[0]
        data = zip(headers, row[1:]) # match correct temp to row item
        for a, b in data:
            out.write("{} {} {}\n".format(time,a.lower(),b))
            print("{} {} {}".format(time,a.lower(),b))


00 temp1 21
00 temp2 32
00 temp3 33
00 temp4 21
00 temp5 23
10 temp1 34
10 temp2 23
10 temp3 12
10 temp4 08
10 temp5 23
20 temp1 12
20 temp2 54
20 temp3 33
20 temp4 54
20 temp5 55

在输出.csv公司名称:

^{pr2}$

尝试使用pandas Dataframe存储csv文件的数据。它提供了一个内置函数pandas.melt,这对您的问题很有用。在

这是文档的link。在

相关问题 更多 >