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答案 0 :(得分:4)
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所建议的:
>>> (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]})