我是熊猫新手。
我有一个如下所示的数据集:
Date_1 Hour_1 id_1 Date_2 Hour_2 id_2 Date_3 Hour_3 id_3
2019-12-04 00 ABC 2019-12-04 01 ABC 2019-12-04 02 ABC
2019-12-04 00 ABCD 2019-12-04 01 ABCD 2019-12-04 02 ABCD
2019-12-04 00 ABCDEF 2019-12-04 01 ABCDE 2019-12-04 02 ABCDEF
2019-12-04 03 ABCDEFG 2019-12-04 01 ABCDEFG 2019-12-04 02 ABCDEF
...
我的目标
是检查是否id_1存在于id_2,中id_3。并创建一个新的数据框,其结构如下:
Date_1 Hour_1 id_1 Date_2 Hour_2 Exists Date_3 Hour_3 Exists
2019-12-04 00 ABC 2019-12-04 01 True 2019-12-04 02 True
2019-12-04 00 ABCD 2019-12-04 01 True 2019-12-04 02 True
2019-12-04 00 ABCDEF False 2019-12-04 02 True
2019-12-04 03 ABCDEFG 2019-12-04 01 True False
我现在遇到的问题是我不知道如何包含 Date_2、Hour_2、Date_3、Hour_3 或排除它们,具体取决于 id_2 和 id_3 是 True 还是 False。
当我创建我的数据框时,我只需添加所有信息源(日期、小时、id),然后我得到大数据框,其中有 Date_1-10、Hour_1-10、id_1-10。
final_export['Exists in id_2'] = final_data['id_1'].isin(final_data['id_2'])
final_export['Date from id_2'] = final_data['Date from id_2 other source']
final_export['Hour from id_2'] = final_data['Hour from id_2 other source']
当我使用.isin()方法时,它会正确过滤数据,但无论是否包含同一行的小时和日期,它都不会改变。例如,如果 id_1 存在于 id_3 中,我将拥有 True 及其日期和小时,如果它不存在,我将拥有 False 并且带小时的日期将为空。
在我使用.isin()日期和小时的那一刻,没有链接到 id_ 值。
如果问题解释正确,请告诉我。
谢谢你的建议。