Read in the first column of a CSV in python

前端 未结 5 1848
予麋鹿
予麋鹿 2020-12-07 02:04

I have a CSV (mylist.csv) with 2 columns that look similar to this:

jfj840398jgg     item-2f
hd883hb2kjsd     item-9k
jie9hgtrbu43     item-12
f         


        
相关标签:
5条回答
  • 2020-12-07 02:45

    The simplest answer

            import pandas as pd
            df = pd.read_csv(mylist.csv)
            matrix2 = df[df.columns[0]].to_numpy()
            list1 = matrix2.tolist()
            print(list1)
    
    0 讨论(0)
  • 2020-12-07 02:53

    you import csv, but then never use it to actually read the CSV. Then you open mylist.csv as a normal file, so when you declare:

     for row in f:
        list2.append(row[0])
    

    What you're actually telling Python to do is "iterate through the lines, and append the first element of the lines (which would be the first letter) to list2". What you need to do, if you want to use the CSV module, is:

    import csv
    with open('mylist.csv', 'r') as f:
        csv_reader = csv.reader(f, delimiter='     ')
        for row in csv_reader:
            list2.append(row[0])
    
    0 讨论(0)
  • 2020-12-07 02:56

    You can also use pandas here:

    import pandas as pd
    df = pd.read_csv(mylist.csv)
    

    Then, getting the first column is as easy as:

    matrix2 = df[df.columns[0]].as_matrix()
    list2 = matrix2.tolist()
    

    This will return only the first column in list. You might want to consider leaving the data in numpy, if you're conducting further data operation on the result you get.

    0 讨论(0)
  • 2020-12-07 02:56

    This helped me a lot.

    import csv
    
    with open("processes_infos.csv", "r", newline="") as file:
        reader = csv.reader(file, delimiter=",")
        for row in reader:
            print(row[0], row[1])
    
    
    

    You can change the delimiter "," into " "

    0 讨论(0)
  • 2020-12-07 03:07

    You should split the row and then append the first item

    list2 = []
    with open("mylist.csv") as f:
        for row in f:
            list2.append(row.split()[0])
    

    You could also use a list comprehension which are pretty standard for creating lists:

    with open("mylist.csv") as f:
        list2 = [row.split()[0] for row in f]
    
    0 讨论(0)
提交回复
热议问题