我希望根据几个熊猫系列中的值对熊猫数据框进行切片。
所以我需要在pandas系列值之间的行。
例如:
\[mailto:(.+)\]|<(.+@.+\..+)>
Hello my Email Address is <foo@hotmail.com> - Return foo@hotmail.com as Group1.
Hello my Email Address is [mailto: foo@hotmail.com] - Return foo@hotmail.com as Group2.
在df_info的每一行中,我都需要df中的介于beginRows和endRows值之间的行。
从技术上讲,我可以这样做:
df = pd.DataFrame(np.random.rand(10,5), columns = list('abcde'))
我不确定如何使该列表作为参数从df_info数据帧发送到np.r_。
谢谢。
答案 0 :(得分:2)
您可以传递slice
个对象:
slice1 = slice(2, 4+1)
slice2 = slice(7, 9+1)
df_result = df[df.index.isin(np.r_[slice1, slice2])]
提供您的输入df_info
:
s1, s2 = [slice(i, j+1) for i, j in df_info.values]
df_result = df[df.index.isin(np.r_[s1, s2])]
或者,对于任意数量的切片,您可以将tuple
传递给np.r_.__getitem__
:
slices = tuple(slice(i, j+1) for i, j in df_info.values)
df_result = df[df.index.isin(np.r_.__getitem__(slices))]