创建一个读取CSV文件的功能

时间:2019-06-26 00:41:40

标签: python csv

我需要编写一个称为read_data的函数来读取虹膜数据集。列的顺序是:

Column 1: sepal length in cm
Column 2: sepal width in cm
Column 3: petal length in cm
Column 4: petal width in cm
Column 5: class

需要按以下顺序返回列:

Sepal length in cm
petal length in cm
sepal width in cm
petal width in cm
class

我尝试过

def read_data(file_path):
    file_path = './iris.csv'
    with open (file_path, 'r') as fin:
        for row in fin:
            print(row)

如何更改列的顺序?

2 个答案:

答案 0 :(得分:1)

您可以将csv文件分配给数据框:

import pandas as pd

df = pd.read_csv("iris.csv")

#Then you can rearrange the elements in the list how you want

df = df[['Column1', 'Column2', 'Column3']]

df.to_csv("iris.csv")

希望这会有所帮助。

答案 1 :(得分:1)

根据您要执行的操作,可以有不同的方法。 Here is another answer展示了编写时如何切换列

这是另一个 真正简单的解决方案-它实际上不在任何其他模块上,但是根据您要查找的内容,可能会有更简单的解决方案。 改变您的功能是这样的:

for row in fin:
    cols = row.split(",")
    desired_order=[0,2,1,3,4]
    new_row = ""
    for num in desired_order:
        new_row += cols[num]
        new_row += ","
    print(new_row)

测试输入

1,2,3,4,5,
6,7,8,9,10

产生

1,3,2,4,5,
6,8,7,9,10,