Как изменить индексы и столбцы информационного блока, созданного из словаря, без отображения значений NAN?

1
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. как я могу решить это?

Теги:
pandas
dataframe
dictionary

1 ответ

0

При передаче словаря аргумент 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))
  • 0
    благодаря тонну. это сработало
  • 1
    @pras - чтобы пометить ответ как принятый, нажмите на флажок рядом с ответом, чтобы переключить его с пустого на зеленый ( см. скриншот ).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню