Как управлять данными в файле .csv, используя Pandas и указав строку и столбец c? - PullRequest
2 голосов
/ 13 июля 2020

У меня есть файл .csv, содержащий четыре столбца и около 700000 строк. Моя проблема в том, что я не могу получить доступ к определенной ячейке c, а только ко всей строке. Мой код:

import pandas as pd

data = pd.read_csv("example.csv")
entries = data["entry"].astype(str)
payments = data["payment_type"].astype(str)
origins = data["origin"].astype(str)


for row in entries:
    if row[26] == "Y":
        data["payment_type"] = "sample"
    if row[27] == "Y":
        data["payment_type"] = "Check Card"
    ...

Например, в первой строке файла .csv я хочу отформатировать ячейку в столбце «origin» в соответствии со столбцом «entry» той же строки. Сценарий делает это, но, как написано сейчас, форматирует весь столбец в соответствии со значением последней записи. Я думаю, что моя проблема в "для" l oop, о том, как получить доступ к указанной c строке столбца.

Любая помощь будет принята с благодарностью.

Спасибо за аванс.

Ответы [ 2 ]

2 голосов
/ 13 июля 2020

вы можете использовать функцию np.where и определять правила форматирования строк, которые ей соответствуют. Или, если у вас несколько правил и несколько условий, вы можете использовать np.select.

0 голосов
/ 13 июля 2020

Вы заменяете весь столбец, вам нужно добавить строку для каждого столбца

import pandas as pd

data = pd.read_csv("example.csv")
entries = data["entry"].astype(str)
payments = data["payment_type"].astype(str)
origins = data["origin"].astype(str)


for row in entries:
    if row[26] == "Y":
        data["payment_type"][row] = "sample"
    if row[27] == "Y":
        data["payment_type"][row] = "Check Card"
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...