gpt4 book ai didi

Python:从 CSV 文件读取时如何排除行的特定部分

转载 作者:行者123 更新时间:2023-11-30 22:06:17 25 4
gpt4 key购买 nike

我对 Python 很陌生,正在尝试读取 CSV 文件:`

1980,Mark,Male,Student,L,90,56,78,44,88
1982,Cindy,Female,Student,S,45,76,22,42,90
1984,Kevin,Male,Student,L,67,83,52,55,59
1986,Michael,Male,Student,M,94,63,73,60,43
1988,Anna,Female,Student,S,66,50,59,57,33
1990,Jessica,Female,Student,S,72,34,29,69,27
1992,John,Male,Student,L,80,67,90,89,68
1994,Tom,Male,Student,M,23,60,89,78,39
1996,Nick,Male,Student,S,56,98,84,44,50
1998,Oscar,Male,Student,M,64,61,74,59,63
2000,Andy,Male,Student,M,11,50,93,69,90

我只想将此数据的特定属性保存到字典或列表列表中。例如,我只想保留年份、姓名和五个数字(连续)。我不确定如何仅排除中间三列。

这是我现在的代码:

def read_data(filename):
f = open("myfile.csv", "rt")
import csv
data = {}
for line in f:
row = line.rstrip().split(',')
data[row[0]] = [e for e in row[5:]]

return data

我只知道如何将大块的列保持在一起,但不知道如何将特定的列一一保持在一起。

最佳答案

您可以使用 pd.read_csv() 并传入所需的列名称:

import pandas as pd

df = pd.read_csv('csv1.csv', names=['Year','Name','Gender','ID1','ID2','Val1','Val2','Val3','Val4','Val5'])

desired = df[['Year','Name','Val1','Val2','Val3','Val4','Val5']]

产量:

    Year     Name  Val1  Val2  Val3  Val4  Val5
0 1980 Mark 90 56 78 44 88
1 1982 Cindy 45 76 22 42 90
2 1984 Kevin 67 83 52 55 59
3 1986 Michael 94 63 73 60 43
4 1988 Anna 66 50 59 57 33
5 1990 Jessica 72 34 29 69 27
6 1992 John 80 67 90 89 68
7 1994 Tom 23 60 89 78 39
8 1996 Nick 56 98 84 44 50
9 1998 Oscar 64 61 74 59 63
10 2000 Andy 11 50 93 69 90

另一种选择是使用 usecols 预先传递列索引位置,如下所示:

df = pd.read_csv('csv1.csv', header=None, usecols=[0,1,5,6,7,8,9])

请注意,这会返回一个带有名为列的索引位置的数据帧:

       0        1   5   6   7   8   9
0 1980 Mark 90 56 78 44 88
1 1982 Cindy 45 76 22 42 90
2 1984 Kevin 67 83 52 55 59
3 1986 Michael 94 63 73 60 43
4 1988 Anna 66 50 59 57 33
5 1990 Jessica 72 34 29 69 27
6 1992 John 80 67 90 89 68
7 1994 Tom 23 60 89 78 39
8 1996 Nick 56 98 84 44 50
9 1998 Oscar 64 61 74 59 63
10 2000 Andy 11 50 93 69 90

关于Python:从 CSV 文件读取时如何排除行的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52766874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com