Как получить доступ к каждому элементу каждой строки при вводе построчно в python

У меня есть CSV-файл с разделителями табуляции. Мой CSV-файл:

    0.227996254681648   0.337028824833703   0.238163571416268   0.183009231781289   0.085746697332588   0.13412895376826
    0.247891283973758   0.335555555555556   0.272129379268419   0.187328622765857   0.085921240923626   0.128372465534807
    0.264761012183693   0.337777777777778   0.245917821271498   0.183211905363232   0.080493183753814   0.122786059549795
    0.30506091846298    0.337777777777778   0.204265153911403   0.208453197418743   0.0715575291087 0.083682658454807
    0.222748815165877   0.337028824833703   0.209714942778068   0.084252659537679   0.142013573559938   0.234672985858848

Теперь я хотел бы ввести каждую строку из файла csv, сделать что-то с каждым элементом каждой строки, а затем сделать то же самое для следующей строки и так далее.

Мой код:

lines = []
    with open("/path/testfile.csv") as f:
        csvReader = csv.reader( f, delimiter = "\t" )
        for row in csvReader:
            x=row[0] #access first floating number of each line from csv
            y=row[1] #access second floating number of each line from csv
            z=row[2] #access third floating number of each line from csv
            r=row[3] #access fourth floating number of each line from csv
            s=row[4] #access fifth floating number of each line from csv
            t=row[5] #access six floating number of each line from csv
            #do something else with each element

Здесь я включил только print(row[0]) в цикл for:

lines = []
with open("/path/testfile.csv") as f:
    csvReader = csv.reader( f, delimiter = "\t" )
    for row in csvReader:
        print(row[0])

Но когда уже пробуешь только print(row[0]), то уже выводит все значения из csv файла. Как я могу получить доступ к каждому элементу из каждой строки в python?

Обычно вы устанавливаете разделитель как delimiter = "\t" для файлов, разделенных табуляцией.

fsimonjetz 22.03.2022 12:15
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
33
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

просто добавьте еще один цикл:

lines = []
with open("/path/testfile.csv") as f:
csvReader = csv.reader( f, delimiter = " " )
for row in csvReader:
    for element in row:
        do_something_with(element)

Привет, спасибо, но тогда он печатает только 0 при использовании print(element[0]). Таким образом, он получает доступ только к 0 каждого первого элемента в каждой строке. Как я могу получить доступ ко всему номеру?

Luker354 22.03.2022 12:23

Как я уже заметил, вы, ребята, используете неправильный разделитель. " " != "\t". Вам нужно "\t".

fsimonjetz 22.03.2022 12:31

Это не имеет значения. Я использовал "\t" сейчас, но это дает тот же результат...

Luker354 22.03.2022 12:33

@ Luker354 Luker354, вы уверены, что файл, который вы читаете, на самом деле разделен табуляцией?

fsimonjetz 22.03.2022 12:36

Да, я совершенно уверен

Luker354 22.03.2022 12:37
Ответ принят как подходящий

Не уверен, что вы знакомы с библиотекой панды. Вы можете использовать панд, которые сильно упростят ситуацию.

Код

import pandas as pd

df = pd.read_csv('./data/data.csv', delimiter='\t', header=None)
print(df)

Выход

          0         1         2         3         4         5
0  0.227996  0.337029  0.238164  0.183009  0.085747  0.134129
1  0.247891  0.335556  0.272129  0.187329  0.085921  0.128372
2  0.264761  0.337778  0.245918  0.183212  0.080493  0.122786
3  0.305061  0.337778  0.204265  0.208453  0.071558  0.083683
4  0.222749  0.337029  0.209715  0.084253  0.142014  0.234673

Затем вы можете выполнить любую операцию, которую хотите, в любом столбце. Пример :

df[0] = df[0]*10    # Multiply all numbers in the 0th column by 10

Я рекомендую взглянуть на библиотеку pandas, это хорошая отправная точка.

Гид пользователя. Это позволит вам легко обрабатывать и обрабатывать ваши данные проще.

Как сейчас написано, ваш ответ неясен. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Community 22.03.2022 13:35

Другие вопросы по теме