Skip to main content
 首页 » 编程设计

python之Pandas 将列名从一个数据框复制到另一个数据框

2025年05月04日13telwanggs

假设我们有两个 pandas 数据框。第一个没有列名:

no_col_names_df = pd.DataFrame(np.array([[1,2,3], [4,5,6], [7,8,9]])) 

第二个有:

col_names_df = pd.DataFrame(np.array([[10,2,3], [4,45,6], [7,18,9]]), 
                           columns=['col1', 'col2', 'col3']) 

我想做的是从 col_names_df 复制列 names 到 no_col_names_df 以便创建以下数据框:

    col1    col2    col3 
0   1       2       3 
1   4       5       6 
2   7       8       9 

我试过以下方法:

new_df_with_col_names = pd.DataFrame(data=no_col_names_df, columns=col_names_df.columns) 

但我得到的不是 no_col_names_df 中的值,而是 NaN。

请您参考如下方法:

就像您使用带有列名的数据框中的列一样,您可以使用不带列名的数据框中的值:

new_df_with_col_names = pd.DataFrame(data=no_col_names_df.values, columns=col_names_df.columns)


In [4]: new_df_with_col_names = pd.DataFrame(data=no_col_names_df, columns=col_names_df.columns) 
 
In [5]: new_df_with_col_names 
Out[5]: 
   col1  col2  col3 
0   NaN   NaN   NaN 
1   NaN   NaN   NaN 
2   NaN   NaN   NaN 
 
In [6]: new_df_with_col_names = pd.DataFrame(data=no_col_names_df.values, columns=col_names_df.columns) 
 
In [7]: new_df_with_col_names 
Out[7]: 
   col1  col2  col3 
0     1     2     3 
1     4     5     6 
2     7     8     9