gpt4 book ai didi

python - 如何比较两行,当它们不同时创建另一个数据框来复制这两行

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:47 24 4
gpt4 key购买 nike

检查 df1 中的列 ['esn']。当在两行之间发现任何不同时,生成另一个数据帧 df2。 df2只包含变化前和变化后的信息

>>> df1 = pd.DataFrame([[2014,1],[2015,1],[2016,1],[2017,2],[2018,2]],columns=['year','esn'])
>>> df1
year esn
0 2014 1
1 2015 1
2 2016 1
3 2017 2
4 2018 2
>>> df2 # new dataframe intended to create
year esn
0 2016 1
1 2017 2

无法在 df2 中产生上述结果。提前感谢您的帮助。

最佳答案

创建 boolena 掩码,通过比较移位后的值 ne 是否不相等,并用 backfill 替换第一个缺失值,类似于 -1 移位比较前向填充缺失值 - 按 | 链接 按位或 并按 boolean indexing 过滤:

mask = df1['esn'].ne(df1['esn'].shift().bfill()) | df1['esn'].ne(df1['esn'].shift(-1).ffill())

df2 = df1[mask]
print (df2)
year esn
2 2016 1
3 2017 2

关于python - 如何比较两行,当它们不同时创建另一个数据框来复制这两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56543373/

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