[英]delete rows based on if consecutive rows are similar - Python
我有这个数据框,想根据这组规则删除行。 如果连续行具有相同的 'area' 和 'local' 值并且 'group_name' 不同,那么我想删除第一行:
df = pd.DataFrame()
df['time'] = pd.date_range("2018-01-01", freq = "s", periods = 10)
df['area'] = [1,1,1,2,2,2,3,3,4,4]
df['local'] = [1,1,1,1,2,2,2,2,2,2]
df['group_name'] = [1,1,2,2,2,3,3,3,4,4]
df['value'] = [1,4,3,2,5,6,2,1,7,8]
上图显示了表格,我想删除第 1 行和第 4 行。
我尝试在区域、本地和组名的子集上使用duplicated()
,但这并不能保留我需要的所有唯一的
请帮帮我!
你可以通过编写一些这样的 if 语句来做到这一点:
for i in range(len(df)-1):
if df.loc[i]['local'] == df.loc[i+1]['local']:
if df.loc[i]['area'] == df.loc[i+1]['area']:
if df.loc[i]['group_name'] != df.loc[i+1]['group_name']:
df.drop(i, inplace=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.