【发布时间】:2021-11-28 04:12:21
【问题描述】:
我想与df1 进行内部连接(合并):
mandant fk_lart_nr fk_ust_sch
7 55 43
00 55 43
和df2:
mandant ust_sch ust_bez
0 59 Gutschrift 19 %
18 3 Rechnung 0 %
我想使用两个连接条件。第一个总是固定的。
第一个连接条件是固定的df1.fk_ust_sch = df2.ust_sch
但是,应该使用第二个连接条件,具体取决于 df1.mandant 的值。
- 如果 df1.mandant 为 7 或 18 ( .isin([7,18]) ),则第二个连接条件应为:
df1.mandant = df2.mandant
- 如果 df1.mandant 不是 7 或 18,则使用 df2 的第二个连接条件应该是:
df2.mandant == '00'
df_merged = df1.merge(df2, left_on=['fk_ust_sch'],
right_on=['ust_sch'],
how='inner', suffixes=('_df1', '_df2'))
【问题讨论】:
-
您的
mandant字段是整数还是字符串存在混淆。您使用.isin([7,18])暗示它是整数类型。但是再比较df2.mandant和'00',暗示它是sting类型。
标签: python pandas dataframe join merge