gpt4 book ai didi

python Pandas : reduce dataframe to contain with duplicate states

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:16 33 4
gpt4 key购买 nike

这是我在这里提出的第一个问题,我找不到解决问题的简单方法。

我想减少包含状态变化的数据框。与“.drop_duplicates()”类似,我想减少具有重复状态的数据帧,但它应该只在状态没有改变时删除该行。

这是我的示例数据框:

df = pd.DataFrame(data=({'Date':('Day1', 'Day2', 'Day3', 'Day4', 'Day5'),
'State':(1,0,0,2,0)}),
columns=(['State']), index=(['Date']))

df_reduced = df.drop_duplicates
df_reduced

不幸的是,结果不是想要的结果:

Out[]: 
State
Date
Day1 1
Day2 0
Day4 2

所需的输出还将包含状态为 0 的第 5 天。

我尝试使用“for and iterrows()”构造,但在处理较长时间序列数据时速度非常慢。

希望您能找到一种更优雅的方式,它可以快速处理更长的时间序列数据。

提前感谢您的帮助!

最佳答案

一种方法是将您的系列与移动一个值的系列进行比较:

df = pd.DataFrame(data={'Date':('Day1', 'Day2', 'Day3', 'Day4', 'Day5'),
'State':(1,0,0,2,0)})

df = df.set_index('Date')

res = df.loc[df['State'] != df['State'].shift()]

print(res)

# State
# Date
# Day1 1
# Day2 0
# Day4 2
# Day5 0

关于 python Pandas : reduce dataframe to contain with duplicate states,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49775476/

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