gpt4 book ai didi

python - Pandas - 跳过 numpy 数组中给定的行数

转载 作者:行者123 更新时间:2023-11-28 20:57:11 24 4
gpt4 key购买 nike

考虑一个 pandas 数据框,任务是跳过 NumPy 数组中给定的行数。

举个例子:

# NumPy array    
arr = np.array([2, 5, 1, 3])
arr
array([2, 5, 1, 3])

# Pandas dataframe
df = pd.DataFrame({'num': [18, 2, 32, 8, 9, 6645, 2, 4, 5, 688, 99, 5, 2, 223, 33, 85],
'val':['f','a','r', 's', 't', 'x', 'l', 'y', 'yy', 'gg', 's', 'ss', 'tt', 'qq', 'p', 'aa']})

df

num val
0 18 f
1 2 a
2 32 r
3 8 s
4 9 t
5 6645 x
6 2 l
7 4 y
8 5 yy
9 688 gg
10 99 s
11 5 ss
12 2 tt
13 223 qq
14 33 p
15 85 aa

预期输出:

   num  val
2 32 r
8 5 yy
10 99 s
14 33 p
15 85 aa

最佳答案

与其删除您希望跳过的行,不如考虑您希望保留 的行。您可以使用 NumPy 执行此操作,利用 np.r_将切片与标量组合:

idx = arr.cumsum() + np.arange(len(arr))

res = df.iloc[np.r_[idx, idx[-1]+1]]

print(res)

num val
2 32 r
8 5 yy
10 99 s
14 33 p
15 85 aa

请注意,我们使用 iloc 位置索引只是因为您的输入数据帧具有常规 pd.RangeIndex。要使用索引标签,请改用loc

如果您需要最后一个指定索引之后的所有 行,您可以使用:

np.r_[idx, idx[-1]+1: len(df.index)]

关于python - Pandas - 跳过 numpy 数组中给定的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53609909/

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