对 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
关于python - 我怎样才能包含标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43549219/