如何将列转置到行?

2024-04-19 19:59:28 发布

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

我有一个文件中的数据:

样品:

City Very poor Poor Fair Good Excellent 
Mumbai 0 4 30 58 8 
Delhi 5 7 18 39 31

我想将列转置到行:

Mumbai 0 Very poor
Mumbai 4 Poor
Mumbai 30 Fair
Mumbai 58 Good
Mumbai 8 Excellent
.....
.....

python中有什么函数可以做到这一点吗?我已经用xml路径在sql中完成了,但我不知道用python最好的方法。你知道吗


Tags: 文件数据函数路径cityfair样品xml
1条回答
网友
1楼 · 发布于 2024-04-19 19:59:28

下面是一个仅使用标准库中的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-您可能需要为标头中的非标准空格指定特定的处理方式。你知道吗

相关问题 更多 >