Создать новые кадры данных из оригинала для значений в столбце (необходимо изменить имя для каждого нового кадра данных) - PullRequest
0 голосов
/ 16 октября 2019

Я не уверен, задавался ли этот вопрос раньше, но у меня есть фрейм данных с> 2M строками, и есть столбец, который определяет, в каком месте произошла каждая транзакция. Я пытаюсь отфильтровать и создать новый фрейм данных для каждого кода местоположения. Я могу отфильтровать этот фрейм данных, но проблема, с которой я сталкиваюсь, состоит в том, чтобы иметь функцию, которая изменяет имя каждого нового фрейма данных, так что я получаю каждый из них с отдельным именем. У меня есть некоторый код, чтобы показать, что у меня есть:

df  = pd.DataFrame({'location':[1, 2, 3, 4, 5], 'col2': [234.34, 34.80, 23.65, 24.23, 12.00]})
filter_array = []

def new_df_for_columns(df, column, filter_array):
    i = 0
    for column in filter_array:
        newdf = df[df[column] == filter_array[i]]
        i += 1
    return newdf.head()

Так что в этом случае мне нужно изменить «newdf» для каждого нового созданного кадра данных.

1 Ответ

0 голосов
/ 16 октября 2019

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

df.reindex (список индексов, соответствующих кодам транзакций)

Например, если ваши данные:

df = pd.DataFrame({'location':[1, 2, 3, 4, 5], 'col2': [234.34, 34.80, 23.65, 24.23, 12.00],index = range(5)})

и вы хотите отфильтровать местоположения 3 и 4, введите df.reindex([2,3]) Это не преобразует ваши данные. Это просто создает вид. Ваши данные будут такими же.

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