【发布时间】:2018-06-26 09:01:24
【问题描述】:
我有 2 个实际上来自固定字段文件的数据帧,我需要找出哪些行不同。
>>> df1 = pd.DataFrame([('1', '2018/01', 389.0, 'U'),
('2', '2018/02', 24.0,'A'),
('3', '2017/01', 80.5,'U'),
('4', '2017/02', np.nan, 'R')],
columns=['sequence', 'key', 'field1','field2'],
)
>>> df2 = pd.DataFrame([('1', '2018/01', 389.0, 'U'),
('2', '2018/02', 24.0,'A'),
('3', '2018/03', 90.5,'T'),
('4', '2017/02', np.nan, 'R'),
('5','2017/01',80.5,'U')],
columns=['sequence', 'key', 'field1','field2'],
)
'sequence' 列不相关,可以删除,我需要在 key 列上匹配它们。
df3 = df1 != df2
如果它们是相同的形状会起作用,但我得到: ValueError:只能比较标记相同的 DataFrame 对象
我已经尝试过合并,但它给了我更多的列
我想我想用较大的 dataframes 'key' 列重新索引较小的 Dataframe,并用 NaN 填充它。
然后它们将是相同的形状,我可以比较它们;
>>> new_index = df2.take([1],axis=1)
>>> new_index
key
0 2018/01
1 2018/02
2 2018/03
3 2017/02
4 2017/01
看起来不错,但是
df3 = df1.reindex(new_index,1)
不对
df3 = df1.reindex(new_index,['key'])
df3
key
(2018/01,) NaN
(2018/02,) NaN
(2018/03,) NaN
(2017/02,) NaN
(2017/01,) NaN
这也不是
【问题讨论】:
标签: python-3.x pandas dataframe