首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的CSV文件转置列

Python中的CSV文件转置列
EN

Stack Overflow用户
提问于 2019-09-20 14:30:36
回答 2查看 1.1K关注 0票数 1

我一直在用这个砸我的头,我可能只需要后退一步。

我有一个CSV文件,如下所示:(虚拟数据-可能有1-20个参数)

汽车,名称,年龄,颜色 福特,迈克,45岁,蓝色 大众,彼得,67岁,黄色

和需要

汽车,参数,价值 福特,名字,迈克 福特,45岁 福特,彩色,蓝色 大众,名字,彼得 大众,年龄67岁 大众,彩色,黄色

我在看:

如何在csv文件中转换数据集?

如何在csv文件中转换数据集?

用行和列转置的Python编写.csv文件

但是我想因为我想保持汽车列的静态,Python函数可能不会攻击它。

对这个阳光星期五大师有什么想法吗?

致以问候!

<列到数据操作中的行,在写入文件>>之前

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-20 14:45:50

使用熊猫

代码语言:javascript
复制
df_in = read_csv('infile.csv')
df_out = df_in.set_index('CAR').stack().reset_index()
df_out.columns = ['CAR', 'PARAMETER', 'VALUE']
df_out.to_csv('outfile.csv', index=False)

输入和输出示例:

代码语言:javascript
复制
>>> df_in
    CAR   NAME  AGE  COLOUR
0  Ford   Mike   45    Blue
1    VW  Peter   67  Yellow
>>> df_out
    CAR PARAMETER   VALUE
0  Ford      NAME    Mike
1  Ford       AGE      45
2  Ford    COLOUR    Blue
3    VW      NAME   Peter
4    VW       AGE      67
5    VW    COLOUR  Yellow
票数 2
EN

Stack Overflow用户

发布于 2019-09-20 15:04:27

我能够使用Python -将列转到数据操作中的行,然后写入文件。进行一些调整,现在一切都很好。

代码语言:javascript
复制
import csv

with open('transposed.csv', 'wt') as destfile:
    writer = csv.writer(destfile)
    writer.writerow(['car', 'parameter', 'value'])
    with open('input.csv', 'rt') as sourcefile:
        for d in csv.DictReader(sourcefile):
            car= d.pop('car')
            for parameter, value in sorted(d.items()):
                row = [car, parameter.upper(), value]
                writer.writerow(row)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58030352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档