我将数据存储在文件中:
样品:
stderr
我想将列转换为行:
City Very poor Poor Fair Good Excellent
Mumbai 0 4 30 58 8
Delhi 5 7 18 39 31
python中有没有可以执行此操作的功能?我在使用xml路径的sql中完成了它,但我不知道在python中做的最佳方法。
答案 0 :(得分:1)
以下是仅使用标准库中的csv
模块的解决方案。
为方便起见,我们使用csv.DictReader
来读取并通过返回的OrderedDict
对象使用标题。
from io import StringIO
import csv
mystr = StringIO("""City VeryPoor Poor Fair Good Excellent
Mumbai 0 4 30 58 8
Delhi 5 7 18 39 31""")
# replace mystr with open('file.csv', 'r')
with mystr as fin:
reader = csv.DictReader(fin, delimiter=' ')
for line in reader:
city = line.popitem(last=False)[1]
for cat, rating in line.items():
print(city, rating, cat)
Mumbai 0 VeryPoor
Mumbai 4 Poor
Mumbai 30 Fair
Mumbai 58 Good
Mumbai 8 Excellent
Delhi 5 VeryPoor
Delhi 7 Poor
Delhi 18 Fair
Delhi 39 Good
Delhi 31 Excellent
注意我已经稍微更改了您的数据:VeryPoor
是类别而不是Very Poor
- 您可能需要为标题中的非标准空格指定特定处理方式。