减去2个Dataframe列并保存在新的DataFrame中

时间:2018-05-29 09:42:49

标签: python pandas

我有2个Pandas DataFrames看起来像:

DF1:

 0     1     2     3
 0.001 0.001 0.001 300
 0.002 0.002 0.002 270
   ...

df2:

 0     1     2     3
 0.001 0.001 0.001 210
 0.002 0.002 0.002 220
   ... 

由于第0列,第1列和第2列始终相同,我想用df2.3对df1.3进行转换。 像:

df3 = df1.3 - df2.3

它不起作用,但我认为它显示了我想要实现的目标。

我希望df3看起来像:

0
90
50
...

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

Literal substances.id不是Python中的有效标识符,因此它不能是DataFrame属性。您需要明确访问该列,即

3

答案 1 :(得分:0)

这项工作对我来说:

 df3 = df1['3'] - df2['3']

替代方案:

 df3 = df1['3'].sub(df2['3'])

答案 2 :(得分:0)

pnadas数据帧索引可以是文本或整数或日期。这取决于他们是如何创造的。

如果我读入示例数据,则默认为文本。但是,实际类型可以是整数。

如果列名是文本,那么这将起作用

df1['3'] - df1['2']

如果他们是整数,那么这将改为

df1[3] - df2[2] 

如果您想纯粹根据数据框中列的位置获得差异,请使用iloc

df1.iloc[:,3] - df2.iloc[:, 2]

查看列元素的类型使用

df1.columns

它应输出

# 1: Int64Index([0, 1, 2, 3], dtype='int64')
# 2: Index(['0', '1', '2', '3'], dtype='object')

使用适合您的列名类型的列选择技术。