При передаче словаря аргумент 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))