【发布时间】:2016-02-04 08:29:53
【问题描述】:
我基本上是在尝试创建一个 Pandas 数据框 (CQUAD_mech_loads),它是更大数据框 (CQUAD_Mech) 的子集。该子集数据帧本质上是通过基于两个条件的过滤创建的。较大的数据框 (CQUAD_Mech) 中有 NO 重复项。
问题是我的子集数据框不包含 ELM 列中的重复 ID。但是,它确实在 LC 列中包含重复项。
CQUAD_ELM 是一个包含四个 ID ([387522, 387522, 387506, 387507]) 的列表。我有 387522 的重复 ID。现在,CQUAD_mech_loads 是一个数据框,其中三个唯一 ID 只有三行。我也想要第四个重复的 ID。
代码:
def get_df(df, col1, cond1, col2='', cond2=0):
return df[(df[col1] == cond1) & (df[col2].isin(cond2))].reset_index(drop=True)
CQUAD_mech_loads = get_df(CQUAD_Mech,'LC', LC, 'ELM', CQUAD_ELM)
输出(387522 的另一行在哪里?):
LC ELM FX FY FXY
0 3113 387506 0 0 0
1 3113 387507 0 0 0
2 3113 387522 0 0 0
【问题讨论】:
-
你不想
df[(df[col1].isin(cond1)) & (df[col2].isin(cond2))].reset_index(drop=True)吗? -
cond1从来都不是一个列表,所以我之前没有使用过isin。无论如何,我尝试在两种情况下都使用isin,但我仍然得到相同的结果。
标签: python pandas duplicates dataframe