Возврат пользовательских переменных для каждого кадра данных в pandas - PullRequest
0 голосов
/ 11 марта 2020

Я чувствую, что это очень простой вопрос, у меня просто нет слов, чтобы сформулировать его в Google. Вот так:

У меня есть фрейм данных, который я хочу разделить на несколько фреймов. Поэтому я создал для этого функцию и a для l oop.

Пример таблицы

     col1 col2 col3 col4 col5
row1 A    Hi   my   name is
row2 A    Bye  see  you  later
row3 B    Bike on   side walk
row4 B    Car  on   str  drive
row5 C    Dog  on   grs  poop

Мой код такой

list_ = list(df['col1'].drop_duplicates())
for i in list_:
    dataframe_creator(i)

Список моих функций

def dataframe_creator(i):
        df = df[df['col1'] == i] 
        return df

Таким образом, результатом этого является то, что он просто создает фрейм данных для слайса, а затем присваивает его той же переменной, а это не то, что мне нужно, я хочу переменную для каждой итерации. По сути, я хотел бы иметь 3 кадра данных с пометкой dfA, dfB, df C в конце, который содержит каждый срез.

Ответы [ 2 ]

1 голос
/ 11 марта 2020

Создание словаря было бы идеально для этого случая!:

df_slicer = {} 
for i in df.col1: 
    df_slicer[i] = df[df.col1==i]
#dfA:
df_slicer['A']
0 голосов
/ 11 марта 2020

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

Создать мой кадр данных:

data = [['A', 'Hi', 'my', 'name', 'is'], 
        ['A', 'Bye', 'see', 'you', 'later'],
       ['B', 'Bike', 'on', 'side', 'walk'],
       ['B', 'Car', 'on', 'str', 'drive'],
       ['C', 'Dog', 'grs', 'on', 'poop']] 

Установить его как кадр данных

test_df = pd.DataFrame(data)

Создать мой список уникальных имен column1

list_ = list(test_df[0].drop_duplicates())

Создать словарь срезов

df_slicer = {}
for i in list_:
    df_slicer[i] = test_df[test_df[0] == i]

Создать мои переменные на основе значения ключа в словаре

for key, val in df_slicer.items():
    exec('df' + key + '=val')

Таким образом, в конце каждого dfA, dfB, df C - каждый кадр данных для соответствующих срезов.

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