我需要编写一个称为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)
如何更改列的顺序?
答案 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,