有一个数据框:
我选择对应于HEATID_id = 1079571
:
的索引子集data.loc[1079571]
,我得到了这个 DataFrame 的索引列表:
ind = data.loc[1079571].index
我想删除索引'2020-03-20 12:57:00'
对应于ind[0]
原始DataFrame的元素,我这样做是这样的:data.loc[1079571].drop(ind[0], inplace=True)
,但原始元素data
保留在原地。
我知道如果我写data.drop((1079571, '2020-03-20 12:57:00'), inplace=True)
,元素将被删除,但是我循环遍历 DataFrame,并且根据某些条件,我必须删除日期属于某些 ID 的子下标。
怎么做才对?
样本数据:
ind = [np.array([1, 1, 2, 2, 3, 3, 4, 4]),
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
df = pd.DataFrame(np.random.randn(8, 3), index=ind, columns=['col1', 'col2', 'col3'])
首先,为方便起见,我将为多索引的列命名:
解决方案:
设置我们将删除数据的索引值的变量:
获取我们要删除的行对应的多索引值:
删除行:
结果:
PS此方法还允许您使用列表: