我有两个Pandas Dataframe 。df 1是一个时间序列,有6列值,其中一列是“名称”。df 2是一个行列表,每行的“名称”列中有一个唯一的字符串,“日期”列的每行中有一个相同的日期--所有行都有来自同一日期发生的观察的相同日期值。
df1--〉
| 日期|姓名|刻痕|状态1|状态2|挑选|
| - -|- -|- -|- -|- -|- -|
| 2022年1月1日|ABC公司|二十三点三|零点二三四|三十四|不含N|
| 2022年1月2日|ABC公司|二十一点一|零点四三一|十四|不含N|
| 2022年1月3日|ABC公司|二十九点九|一点三一零|四个|不含N|
| 2022年1月4日|ABC公司|11.3节|九、三一零|三个|不含N|
df 1索引为日期
df2--〉
| 索引|日期|姓名|挑选|
| - -|- -|- -|- -|
| 第0页|2022年1月3日|QRS波|二十三点三|
| 一个|2022年1月3日|ABC公司|二十一点一|
| 2个|2022年1月3日|数据库管理员|二十九点九|
| 三个|2022年1月3日|KLL语言|11.3节|
我想将df 2中的行合并/添加到df 1中符合“name”和“date”条件的行。
我已经审查了许多文章在这里和其他地方以及尝试。合并如下:
df3['pick'] = pd.merge(df1, df2, how='outer', on=['name'])
成功是让df 2或新的df 3看起来像这样:
| 日期|姓名|刻痕|状态1|状态2|挑选|
| - -|- -|- -|- -|- -|- -|
| 2022年1月1日|ABC公司|二十三点三|零点二三四|三十四|不含N|
| 2022年1月2日|ABC公司|二十一点一|零点四三一|十四|不含N|
| 2022年1月3日|ABC公司|二十九点九|一点三一零|四个|二十一点一|
| 2022年1月4日|ABC公司|11.3节|九、三一零|三个|不含N|
其中df 1根据df 2中的相关行更新,或者新的df 3是df 1和df 2的结果组合,其中插入了“pick”值21.1以匹配相应的日期和名称。
如蒙指导,不胜感激。
2条答案
按热度按时间cuxqih211#
试试这个:
bq3bfh9z2#
输出: