gpt4 book ai didi

python - 删除每个外部索引的第一行

转载 作者:太空宇宙 更新时间:2023-11-04 04:50:19 24 4
gpt4 key购买 nike

我有一个具有两级索引的 DataFrame。第一层由 names 列表中的字符串组成,第二层由 datetime 对象组成。我正在尝试删除每个外部索引的第一行

例如:

>>> print(df)

val1 val2
name date
Tom 2018-01-01 2.3 5.4
2018-01-02 3.6 8.2
Jerry 2018-02-18 5.7 1.3
2018-02-19 7.2 3.8

names = ['Tom', 'Jerry']

for name in names:
df.loc[name].drop(<row 0 of this name>, inplace=True)

>>> print(df)

val1 val2
name date
Tom 2018-01-02 3.6 8.2
Jerry 2018-02-19 7.2 3.8

最佳答案

使用列表理解 xs对于第一个索引:

names = ['Tom', 'Jerry']
idx = [df.xs(name, drop_level=False).index[0] for name in names]
df = df.drop(idx)
print (df)
val1 val2
name date
Tom 2018-01-02 3.6 8.2
Jerry 2018-02-19 7.2 3.8

要按第一层删除所有第一行,请使用 get_level_values + duplicated用于面具和过滤器 boolean indexing :

df = df[df.index.get_level_values(0).duplicated()]
print (df)
val1 val2
name date
Tom 2018-01-02 3.6 8.2
Jerry 2018-02-19 7.2 3.8

关于python - 删除每个外部索引的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48504022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com