在pandas中,我已经在this df。
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)
从完成的研究中,似乎没有任何作用/适应:
将列标题添加到新的Pandas DataFrame
结果是没有任何标头的。我如何包括标题?
我正在寻找的是:
results
data1 0.25
data2 3
简而言之
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
我正在通过手机进行编辑,所以请原谅格式化,但这会这样做吗?
new = pd.DataFrame({'results':df.loc[D]/df.loc[A]})