Как добавить индекс и ссылку на единицы измерения в кадре данных с pandas? - PullRequest
0 голосов
/ 19 марта 2020

У меня есть фрейм данных df, который содержит много ненужных столбцов, а также словарь под названием dict, где он включает нужные столбцы в качестве ключа и единицы измерения в качестве элемента внутри каждого ключа: dict = {'time': 'date', 'place': 'London'}

Мне нужен новый фрейм данных (final_df) только с столбцами, включенными в качестве ключа в dict, и включающими в качестве первой строки (индекса) ключ dict и в качестве второй строки элемент внутри каждого ключ dict (единицы индекса).

Текущий df пример

enter image description here

Желаемый final_df Фрейм данных

enter image description here

Я пробовал с:

    dict = {'time': 'date', 'place': 'London'}
    keys = []
    for key in dict:
        for col in df.columns:
            if col == key:
                keys.append(col)
    final_df = df[keys]

Это работает, но я не знаю, как включить единицы во второй строке , Как я могу также добавить его в мой final_df? Любое другое предложение, как это сделать?

1 Ответ

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

Вот пример того, что вы хотите:

Создание примера тестирования ( вы всегда должны публиковать проверяемый фрагмент ) для более быстрых + лучших ответов ):

np.random.seed(0)
df = pd.DataFrame(np.random.randint(0,100,(5,4)),columns=list('ABCD'))
print(df)

    A   B   C   D
0  44  47  64  67
1  67   9  83  21
2  36  87  70  88
3  88  12  58  65
4  39  87  46  88

Решение:

  1. Создайте кадр данных, отфильтровав только столбцы, присутствующие в ключах словаря.
  2. Создать мультииндекс из ключей и значений из словаря и присвоение фрейму данных и присвоение обратно столбцам.

d= {'A': 'Col1', 'D': 'Col2'} #reference dictionary
final = df.loc[:,d.keys()]
final.columns = pd.MultiIndex.from_arrays((d.keys(),d.values()))
print(final)

     A    D
  Col1 Col2
0   44   67
1   67   21
2   36   88
3   88   65
4   39   88

Примечание: пожалуйста, не назовите словарь как dict, поскольку он будет переопределять функции словаря по умолчанию.

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