熊猫-drop_duplicates,并将子集设置为df的索引

时间:2019-12-20 05:30:13

标签: python pandas csv

我想从df中删除重复的行。如果两行或更多行共享相同的时间,那就是重复的,那就是它们需要共享的全部。有效列已设置为df的索引。

如何根据有效日期/索引中的日期时间删除重复项

test_csv = """ 
valid,value
2004-07-21 09:00:00,200
2004-07-21 10:00:00,200
2004-07-21 11:00:00,150
2004-07-21 12:00:00,140
2004-07-21 13:00:00,130
2004-07-21 13:00:00,130
2004-07-21 13:00:00,130
2004-07-21 13:00:00,130
2004-07-21 13:00:00,130
2004-07-21 13:00:00,130
2004-07-21 13:00:00,130
2004-07-21 14:00:00,080
2004-07-21 15:00:00,VRB
2004-07-21 16:00:00,M
2004-07-21 17:00:00,M
2004-07-21 17:01:00,VRB
2004-07-21 19:00:00,VRB
2004-07-21 20:00:00,280
2004-07-21 21:00:00,020
2004-07-21 22:00:00,VRB
2004-07-21 23:00:00,330
2004-07-22 00:00:00,VRB
2004-07-22 01:59:00,VRB
2004-07-22 02:00:00,VRB
2004-07-22 03:00:00,VRB
"""

import pandas as pd
import numpy as np
from io import StringIO

test_csv = StringIO(test_csv)
df = pd.read_csv(test_csv)

df['valid'] = pd.to_datetime(df['valid'])  # convert 'valid' column to pd.datetime objects
df = df.set_index('valid')  # set the 'valid' as the index of the df

df.drop_duplicates(subset='valid', keep='last', inplace=True)

print(df)

使用此代码,我得到错误KeyError: Index(['valid'], dtype='object'


应注意,有效列必须保留为df的索引。

0 个答案:

没有答案