Избегайте перезаписи набора данных в Python forloop - PullRequest
0 голосов
/ 01 августа 2020
price
date            price      fruit
2010-01-04    0.83        banana
2010-01-04    0.05         apple

Для каждого фрукта, как вы могли бы сохранить, если этот фрукт == True, а затем временно отбросить столбец фруктов при работе с этим конкретным фруктом?

listxx = [(price, "price")]
fruits = ['apple', 'banana', 'pear']

for fruit in fruits:
    for x, y in listxx:
            x[x['fruit'] == fruit]
            x.drop(['fruit'], axis=1, inplace=True)

В настоящее время, когда я добираюсь до банан, столбец фруктов уже удален из-за яблока.

При итерации по банану набор ценовых данных должен выглядеть следующим образом:

date          price     
2010-01-04    0.83     

При итерации над яблоком набор ценовых данных должен выглядеть следующим образом: :

date            price    
2010-01-04    0.05       

1 Ответ

1 голос
/ 01 августа 2020

Мне нужен набор данных о ценах, чтобы временно удалить столбец фирм и сохранить, если плод = этот фрукт. Затем go возвращается к исходному набору данных для следующего фрукта, чтобы сделать то же самое.

Практически это означает создание нового набора данных с отфильтрованными данными. Мы дадим ему отдельное имя, чтобы мы могли: i) фактически ссылаться на результат проверки строк и ii) удалять столбцы из этого результата вместо исходного результата.

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

tables_and_names = [(price, "price")]
fruits = ['apple', 'banana', 'pear']

for fruit in fruits:
    for table, name in tables_and_names:
        filtered_table = table[table['fruit'] == fruit]
        filtered_table.drop(['fruit'], axis=1, inplace=True)
        # now we can do more logic with the filtered_table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...