从另一个数据帧中减去一个数据帧(不包括第一列Pandas)

2024-05-15 06:10:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须用相同的列数据帧。我的任务应该是在不接触第一列('A')的情况下从df_nap中减去df_tot。 最简单的解决方法是什么?在

谢谢你!在

import numpy as np
import pandas as pd

df_tot = pd.DataFrame(np.random.randint(10, size=(3,4)), columns=list('ABCD'))
df_nap = pd.DataFrame(np.random.randint(10, size=(3,4)), columns=list('ABCD'))

Tags: columns数据importdataframedfsizeasnp
3条回答

在使用^{}之前,请为两个数据帧设置公共索引:

df_tot = df_tot.set_index('Wavelength')
df_nap = df_nap.set_index('Wavelength')

res = df_tot.sub(df_nap)

如果您需要将'Wavelength'作为一个序列而不是一个索引,您可以对结果调用reset_index

^{pr2}$

但是,将唯一的行标识符存储为索引而不是序列有一定的好处。例如,更有效的查找和合并功能。在

只需减去整个数据帧,然后将所需的值重新分配给波长列。在

result = df_tot - df_nap
result['Wavelength'] = df_tot['Wavelength']

例如

^{pr2}$

或者,如果波长列不是数字,您可以 减去除波长之外的所有值,然后重新指定该列:

result = df_tot.drop('Wavelength', axis=1) - df_nap.drop('Wavelength', axis=1)
result['Wavelength'] = df_tot['Wavelength']

您还可以使用joiniloc

df_tot.iloc[:,:1].join(df_tot.iloc[:,1:]-df_nap.iloc[:,1:])

但这意味着列的顺序相同,“波长”是第一个

相关问题 更多 >

    热门问题