CSV文件在Python中将列转换为行
我一直在为这个伤脑筋,我可能只需要退一步 我有这样一个CSV文件:(虚拟数据-可能有1-20个参数) 汽车、名字、年龄、颜色 福特,迈克,45岁,蓝色 大众,彼得,67岁,黄色 需要 汽车、参数、价值 福特,名字,迈克 福特,45岁 福特,彩色,蓝色 大众,名字,彼得 大众,年龄,67岁 大众,彩色,黄色 我在看: 但我认为,因为我想保持CAR列的静态,Python zip函数可能无法破解它 对这位阳光明媚的周五大师有什么想法吗 问候 >使用: 输入和输出示例:CSV文件在Python中将列转换为行,python,csv,Python,Csv,我一直在为这个伤脑筋,我可能只需要退一步 我有这样一个CSV文件:(虚拟数据-可能有1-20个参数) 汽车、名字、年龄、颜色 福特,迈克,45岁,蓝色 大众,彼得,67岁,黄色 需要 汽车、参数、价值 福特,名字,迈克 福特,45岁 福特,彩色,蓝色 大众,名字,彼得 大众,年龄,67岁 大众,彩色,黄色 我在看: 但我认为,因为我想保持CAR列的静态,Python zip函数可能无法破解它 对这位阳光明媚的周五大师有什么想法吗 问候 >使用: 输入和输出示例: >>>
>>> 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
我能够使用一些调整,现在一切都很好
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)
嗨,Stef,非常感谢你的投入。我本来想尝试不使用任何外部的东西,我已经有了,我现在可以使用,我已经准备好了,谢谢
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)