python - 我怎样才能包含标题?

标签 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

最佳答案

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/

相关文章:

python - 创建一个变量/DataFrame,从函数的参数中获取其名称

python - 根据条件 python pandas 向数据帧添加新行

python - 在函数中动态创建Python子类

python - 使用 pandas 过滤数据

python - 用户是否可以在不下载 Python 的情况下打开我的程序?

python - 加载 psycopg2 模块时出错 - 从 Postgres 应用程序更改为 brew 安装的 postgres

python - Sklearn 中的数据类型和机器学习算法

python - 映射两个数据框以创建一个具有多个键值的字典 - Pandas

Python Popen stdin PIPE 被垃圾邮件

python - redis, python 和一个存储信息