我有一个dataframe,其中包括一些“无效”行,我想删除这些行。我有第二个dataframe,它包含这些无效的行。
无效行为=
DatetimeIndex(['2019-11-11', '2019-12-06', '2019-12-13', '2019-12-15',
'2019-12-17', '2019-12-18', '2019-12-19', '2019-12-31',
'2020-01-01', '2020-01-02', '2020-01-03', '2020-01-10',
'2020-01-15', '2020-01-17', '2020-01-22', '2020-02-05',
'2020-02-07', '2020-02-09', '2020-02-10', '2020-02-12',
'2020-02-14', '2020-02-19', '2020-02-20', '2020-02-21',
'2020-02-25', '2020-02-26', '2020-02-28', '2020-03-02',
'2020-03-04', '2020-03-06', '2020-03-11', '2020-03-12',
'2020-03-15', '2020-03-22', '2020-03-29', '2020-04-04',
'2020-04-11', '2020-04-13', '2020-05-13', '2020-05-23',
'2020-05-29', '2020-05-30', '2020-06-12', '2020-06-15',
'2020-06-19', '2020-06-24', '2020-06-26', '2020-07-09',
'2020-07-10', '2020-07-11', '2020-07-12', '2020-07-16',
'2020-07-17', '2020-07-18', '2020-07-20', '2020-07-23',
'2020-07-24', '2020-07-26'],
dtype='datetime64[ns]', name='dateTime', freq=None)我想从以下位置删除这些行(日期):
DatetimeIndex(['2019-11-11 11:00:00', '2019-11-11 12:00:00',
'2019-11-11 13:00:00', '2019-11-11 14:00:00',
'2019-11-11 15:00:00', '2019-11-11 16:00:00',
'2019-11-11 17:00:00', '2019-11-11 18:00:00',
'2019-11-11 19:00:00', '2019-11-11 20:00:00',
...
'2020-07-26 05:00:00', '2020-07-26 06:00:00',
'2020-07-26 07:00:00', '2020-07-26 08:00:00',
'2020-07-26 09:00:00', '2020-07-26 10:00:00',
'2020-07-26 11:00:00', '2020-07-26 12:00:00',
'2020-07-26 13:00:00', '2020-07-26 14:00:00'],
dtype='datetime64[ns]', name='dateTime', length=6196, freq='H')我试过:
df_steps1h.loc[df_steps1h.index.difference(df_valid.index), ]和
df_steps1h[~df_steps1h.index.isin(df_valid.index)].dropna()DataFrames是不同的,所以我不想使用concat或合并。但它不会移除任何东西。知道为什么吗?谢谢!
发布于 2020-08-01 17:52:48
假设df为无效行DataFrame,df_valid为要从中删除的原始DataFrame。
df_valid.loc[:,"actual_index"]=df_valid.index
df_valid.loc[:,"actual_index"]=df_valid.loc[:,"actual_index"].apply(lambda x: datetime.strftime(x,'%Y-%m-%d'))
df_valid.loc[:,"actual_index"]=pd.to_datetime(df_valid.loc[:,"actual_index"])
df_valid=df_valid[~df_valid.actual_index.isin(df.index)]
df_valid.drop('actual_index', inplace=True, axis=1)在上述查询中,虽然DataFrame的索引为DatetimeIndex类型,但其值与基于Frequency的其他DataFrame有显着性差异。
该解决方案旨在将其转换为类似的频率,从而执行操作。
https://stackoverflow.com/questions/63208037
复制相似问题