【发布时间】:2021-03-20 00:04:07
【问题描述】:
我有一个数据框,我需要从数据框 A 中提取值 Id 并将每一行存储在数据框 B 中的每一行,例如:
对于这两个数据框,我想明确地从数据框 A 中删除具有值 23、50、41 的行值,这些值是 A 和 B 之间的公共列值,并将这些行移动到数据框 C 中。 我试图实现的输出如下:
对于任何代码尝试,除了合并之外我没有做任何事情,但它不会删除列。
【问题讨论】:
我有一个数据框,我需要从数据框 A 中提取值 Id 并将每一行存储在数据框 B 中的每一行,例如:
对于这两个数据框,我想明确地从数据框 A 中删除具有值 23、50、41 的行值,这些值是 A 和 B 之间的公共列值,并将这些行移动到数据框 C 中。 我试图实现的输出如下:
对于任何代码尝试,除了合并之外我没有做任何事情,但它不会删除列。
【问题讨论】:
这听起来像是一个索引问题:
# keep the wanted columns
df_c = df_a[df_a['Id'].isin(df_b['Id'])]
# remove those in the original dataframe
df_a = df_a[~df_a['Id'].isin(df_b['Id'])]
【讨论】:
使用过滤:
mask = df_a['Id'].isin(df_b['Id'])
df_c,df_a = df_a[mask],df_a[~mask]
【讨论】: