gpt4 book ai didi

python - 在 pandas 上追加后仅保留重复的索引

转载 作者:行者123 更新时间:2023-11-28 21:35:39 24 4
gpt4 key购买 nike

我正在尝试形成一个时间序列,并 append 了 2014 年和 2015 年数据库中的数据。问题是,我只需要观察我的身份证在这两年中都存在的情况。我知道如何在水平合并上执行此操作,但是有没有办法通过 append 来执行此操作?或者,有没有办法 reshape 我的合并数据?

我的数据如下所示:

df14:

id year value1 value2
1 2014 a x
2 2014 b y

df15:

id year value1 value2
2 2015 c w
3 2015 d z

在这种情况下,我只想要一个如下所示的 DataFrame:

id year value1 value2
2 2015 c w
2 2014 b y

但是df14.append(df15)带来了完整的 append ,并且没有索引匹配选项。

有办法做到这一点吗?找不到它,尽管它应该很简单。

提前致谢

最佳答案

您可以将 duplicatedkeep=False 参数一起使用,以对连接的 DataFrame 进行子集化。

df = pd.concat([df14, df15], ignore_index=True)
df[df.duplicated('id', keep=False)]

输出:

   id  year value1 value2
1 2 2014 b y
2 2 2015 c w

对于 Wen 的观点,如果一帧中有重复项,并且您只需要选择不同年份的重复项,请使用 transform 进行子集化。

df[df.groupby('id').year.transform(lambda x: x.nunique() > 1)]
# or
df.groupby('id').filter(lambda x: x.year.nunique() > 1)

关于python - 在 pandas 上追加后仅保留重复的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52065088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com