Skip to main content
 首页 » 编程设计

python之我怎样才能包含标题

2025年05月04日13txw1958

对 pandas 还很陌生,我从这个 df 中的 last_value/first_value 行的划分生成了一个新列。

df= 
     data1 data2  
A      4    3 
B      4    3 
C      5    3 
D      1    9 

我生成了这个新列(没有标题)

new_column= df.loc[D]/df.loc[A] 
 
new_column= 
data1   0.25 
data2   3 

我试图通过以下方式添加标题“结果”:

new_column.rename(columns={0 :'results'}, inplace=True) 
new_column.rename(columns={'0' :'results'}, inplace=True) 
new_column['results']= df.loc[D]/df.loc[A] 
 
 
print (new_column) 

从所做的研究来看,似乎没有任何效果/适应:

Adding Column Headers to new pandas dataframe

没有任何标题,结果是一样的。如何包含标题?

我正在寻找的是:

       results 
data1   0.25 
data2   3 

简而言之,带有标题“结果”的 new_column

请您参考如下方法:

new_column 是一个 pd.Series,它没有“列”,但是它有一个 name:

>>> new_column = df.loc['D']/df.loc['A'] 
>>> new_column 
data1    0.25 
data2    3.00 
dtype: float64 

默认情况下,如果以这种方式构造,它没有,但是:

>>> new_column.rename('results', inplace=True) 
data1    0.25 
data2    3.00 
Name: results, dtype: float64 

你想要一个 pandas.DataFrame,所以你可以用这个代替上面的:

>>> new_column = (df.loc['D']/df.loc['A']).to_frame() 
>>> new_column 
          0 
data1  0.25 
data2  3.00 

现在你的尝试成功了:

>>> new_column.rename(columns={0 :'results'}, inplace=True) 
>>> new_column 
       results 
data1     0.25 
data2     3.00 

或者,您可以一次完成,跌落,俯冲:

>>> new_column = pd.DataFrame((df.loc['D']/df.loc['A']), columns=['results']) 
>>> new_column 
       results 
data1     0.25 
data2     3.00 

编辑以添加@MaxU 的建议

也许最简单的方法是 MaxU 所建议的:

>>> (df.loc['D']/df.loc['A']).to_frame('results') 
       results 
data1     0.25 
data2     3.00