【发布时间】:2018-02-10 01:45:14
【问题描述】:
我有两个数据框,df1 和 df2,每个数据框都采用以下格式,具有相同的索引和不同的值:
Value
Date
01-01 60
01-02 70
01-03 -80
我需要比较 df1 < df2 的值的两个数据帧,并仅在第三个数据帧 df_new 中获取比较正确的值与它们各自的索引。
【问题讨论】:
我有两个数据框,df1 和 df2,每个数据框都采用以下格式,具有相同的索引和不同的值:
Value
Date
01-01 60
01-02 70
01-03 -80
我需要比较 df1 < df2 的值的两个数据帧,并仅在第三个数据帧 df_new 中获取比较正确的值与它们各自的索引。
【问题讨论】:
我建议您根据索引合并两个数据框,以便比较每列之间的值。
试试这个:
import pandas
df1 = pandas.DataFrame(
data=[60, 70, -80],
index=['01-01', '01-02', '01-03'],
columns=['Value'])
df2 = pandas.DataFrame(
data=[59, 69, -79],
index=['01-01', '01-02', '01-03'],
columns=['Value'])
df3 = df1.merge(df2, how='outer', left_index=True, right_index=True, suffixes=('_1', '_2'))
df3['Delta'] = df3['Value_2'] - df3['Value_1']
它将返回以下数据框:
Value_1 Value_2 Delta
01-01 60 59 -1
01-02 70 69 -1
01-03 -80 -79 1
这里是合并方法的链接: pandas.DataFrame.merge
【讨论】: