我只想将要创建的新列放在数据框的开头,而不是出现在末尾。我读过的所有答案都使用“插入”,这是我当前解决方案中使用的,但是我认为这不必要地复杂。我相信有更好的解决方案。
我正在创建一个连接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中插入此新列?
答案 0 :(得分:0)
这是使用concat
pd.concat([pd.DataFrame({'Result_ID': df_temp},index=df.index),df],axis=1)
答案 1 :(得分:0)
因为df_temp是具有一列的数据帧,并且df_temp
和df
具有可以使用join
的相同索引
df_temp.join(df)
如果您已经将'Result_ID'
列分配到df
的末尾,则可以使用set_index
和reset_index
df.set_index('Result_ID').reset_index()
答案 2 :(得分:0)
您可以使用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