问题描述
我有两个数据框:
df_1 = pd.DataFrame({'a' : [7,8,2],'b': [6,6,11],'c': [4,6]})
df_1
和
df_2 = pd.DataFrame({'d' : [8,4,12],'e': [16,2,1],'f': [9,3,4]})
df_2
我的目标是这样的:
以一种“一次性”的方式,我可以多次减去每一列。
我正在尝试 for
循环,但我卡住了!
解决方法
您可以将它们减去为 numpy 数组(使用 .values
),然后将结果放入数据框中:
df_3 = pd.DataFrame(df_1.values - df_2.values,columns=list('xyz'))
# x y z
# 0 -1 -10 -5
# 1 4 4 5
# 2 -10 10 2
或者将 df_1.columns
和 df_2.columns
重命名为 ['x','y','z']
,您可以直接减去它们:
df_1.columns = df_2.columns = list('xyz')
df_3 = df_1 - df_2
# x y z
# 0 -1 -10 -5
# 1 4 4 5
# 2 -10 10 2