我怎么能包括标题?

时间:2017-04-21 17:59:20

标签: python pandas

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

2 个答案:

答案 0 :(得分:4)

new_columnpd.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

答案 1 :(得分:3)

我正在手机上编辑这个,所以请原谅时髦的格式,但是这样做了吗?

new = pd.DataFrame({'results':df.loc[D]/df.loc[A]})