我有一个数据框,其中:
columnA columnB
name timestamp x x
要在多索引数据框中删除一行,我有这个:
df.drop(my_timestamp, level=1, axis=0, inplace=True)
如何删除具有特定“名称”和“时间戳”索引的一行?
如何为一个名称和时间戳列表删除多个行?
最佳答案
我将根据以下数据框示例提供答案(您实际上必须提供一个):
columnA columnB
NameA 2016-01-01 12:00:00 p a
2017-01-01 12:00:00 q b
NameB 2018-01-01 12:00:00 r c
NameC 2019-01-01 12:00:00 s d
how can I drop one row with a certain 'name' and 'timestamp' index?
假设您想使用“NameA”删除名称,使用“2017-01-01 12:00:00”删除时间戳,那么您可以使用:
df.drop(('NameA', pd.Timestamp(2017, 1, 1, 12)), axis=0)
输出:
columnA columnB
NameA 2016-01-01 12:00:00 p a
NameB 2018-01-01 12:00:00 r c
NameC 2019-01-01 12:00:00 s d
how can I drop multiple rows for one name and a list of timestamps?
您可以使用 pd.MultiIndex.from_product
创建一个要删除的多索引。
示例:您想删除“NameA”的两个时间戳:
df.drop(
pd.MultiIndex.from_product([
['NameA'],
[pd.Timestamp(2016, 1, 1, 12), pd.Timestamp(2017, 1, 1, 12)]]),
axis=0
)
输出:
columnA columnB
NameB 2018-01-01 12:00:00 r c
NameC 2019-01-01 12:00:00 s d
关于python - 如何删除具有某些第一级和第二级索引的多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73367155/