Как изменить индексы и столбцы информационного блока, созданного из словаря, без отображения значений NAN? - PullRequest
0 голосов
/ 22 декабря 2018
import pandas as pd

df_dict = {'k1':(1,2,3),'k2':(20,30,40),'k3':(30,40,50),'k4':[100,200,300]}

data_Frame_dict = pd.DataFrame(data=df_dict,index=['k11','k22','k33'],columns=['s1','s2','s3','s4'])

data_Frame_dict

     s1   s2   s3   s4
k11  NaN  NaN  NaN  NaN
k22  NaN  NaN  NaN  NaN
k33  NaN  NaN  NaN  NaN

это делает все данные в кадре данных NAN.как я могу решить это?

1 Ответ

0 голосов
/ 22 декабря 2018

При передаче словаря аргумент columns используется для выбора ключей из словаря для использования в качестве столбцов.Чтобы понять, что я имею в виду, вот пример:

pd.DataFrame(df_dict, columns=['k1', 'k4'])

   k1   k4
0   1  100
1   2  200
2   3  300

Если переданные вами значения столбца отсутствуют в словаре, то этот столбец вставляется как столбец, заполненный NaN.В качестве другого примера см.

pd.DataFrame(df_dict, columns=['k1', 'k4', 'dummy_col'])

   k1   k4 dummy_col
0   1  100       NaN
1   2  200       NaN
2   3  300       NaN

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

df = pd.DataFrame(data=df_dict, index=['k11','k22','k33']) 
df.columns = ['s1','s2','s3','s4']

Имейте в виду, чтоПорядок столбцов может не обязательно отражать фактический порядок столбцов, потому что это зависит от того, поддерживает ли ваша реализация python упорядоченные словари или нет (предупреждение о спойлере, оно поддерживается только в версии 3.6 +).

Я предлагаю

col_mapping = {'k1': 's1', 'k2': 's2', ...}
df = (pd.DataFrame(data=df_dict, index=['k11','k22','k33'])
        .rename(col_mapping, axis=1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...