Определить положение нового столбца при его создании - PullRequest
0 голосов
/ 25 апреля 2019

Я просто хочу поместить новый столбец, который я создаю, в начало кадра данных вместо того, чтобы он появлялся в конце. Все ответы, которые я прочитал, используют «вставку», которую я использую в своем текущем решении, но я думаю, что это излишне сложно. Я уверен, что есть лучшее решение.

Я создаю столбец, объединяющий 2 столбца.

df_temp = pd.DataFrame()
df_temp['Result_ID'] =df['ID']+'_'+df['Execution_Date'].dt.month.astype(str) + df['Execution_Date'].dt.day.astype(str) + df['Execution_Date'].dt.year.astype(str)
df.insert(loc = 0, column = 'Result_ID', value = df_temp )

Как я могу напрямую вставить этот новый столбец в df при запуске?

Ответы [ 3 ]

0 голосов
/ 25 апреля 2019

, поскольку df_temp - это фрейм данных с одним столбцом, а df_temp и df имеют тот же индекс, который вы можете использовать join

df_temp.join(df)

, если вы уже присвоили столбец 'Result_ID' концу df, вы можете использовать set_index и reset_index

df.set_index('Result_ID').reset_index()
0 голосов
/ 25 апреля 2019

Вы можете добавить новый столбец в начале кадра данных, используя reindex следующим образом,

df = pd.DataFrame([[2,4],[4,3],[5,3]], columns = ['A', 'B'])
new = [3,4,4]
df.reindex(['C', *df.columns], axis=1).assign(C=new)
df

Надеюсь, это поможет. Тем не менее, я думаю, что с insert было бы легче иметь дело, при условии дополнительной гибкости при работе с данными,

df.insert(0, 'C',new )
df
0 голосов
/ 25 апреля 2019

Вот один из способов использования concat

pd.concat([pd.DataFrame({'Result_ID': df_temp},index=df.index),df],axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...