以下代码如何用于重新排列列名

时间:2019-11-06 06:56:33

标签: python python-3.x pandas

试图了解以下代码如何按照其他数据帧重新排列结果数据帧的列。

df_with_intercept = df_with_intercept[df_scorecard['Feature_names'].values]

请注意,'Feature names'中的df_scorecard列具有df_with_intercept中使用的所有列名,但有一些分数。

上面的代码只是重新排列了df_with_intercept中的列以匹配'Feature names'中的行顺序。

这样做是为了实现相关变量之间的点乘法。

df_scorecard['Feature_names']

inputs_test_with_ref_cat_w_intercept = \ 
   inputs_test_with_ref_cat_w_intercept[df_scorecard['Feature name'].values]

1 个答案:

答案 0 :(得分:0)

我认为这可能有助于解释一些事情。

从另一个数据框的列更新一个熊猫数据框的列名

从数据的数据帧开始

df_pokemon = pd.DataFrame({                                        
    "A": ["Eevee", "Vaporeon", "Flareon"],                                                               
    "C": ["Pichu", "Pikachu", "Raichu"]}) 

这将产生一个像这样的数据框

enter image description here

创建具有标签名称的数据框

df_labels = pd.DataFrame({                                        
    "X": ["Pikachu_line", "Eevvee_line"]}) 

这将产生一个像这样的数据框

enter image description here

我可以使用df_labels中的X列替换df_pokemon中的列名称

df_pokemon.columns = df_labels['X'].tolist()

因此

enter image description here

如何根据一个数据框列中的数据更改一个数据框中列的顺序

假设要切换df_pokemon中的列,我们可以这样做。

我创建了一个新的df_labels,其顺序已更新(皮卡丘和eevee已切换)

df_labels = pd.DataFrame({"X": ["Pikachu_line", "Eevvee_line"]}) 

我可以使用X列中的数据来指定df_pokemon中的顺序

df_pokemon[df_labels['X'].tolist()]

您将看到列的顺序已更改

enter image description here