这是我正在使用的一些代码。通过切片和一些条件,我慢慢地减少了一个初始数据帧,直到我只有所需的行。五行的每个块实际上代表一个不同的对象,因此,当我缩减内容时,如果五行的每个块中的任何一行满足条件,我希望保留它——这就是keep.index循环所完成的。不管怎样,当我完成后,我可以看到我想要的最终索引存在,但是我收到一条错误消息,说“IndexError:positional indexer超出了界限”。这里发生了什么?
import pandas as pd
import numpy as np
temp = np.random.rand(100,5)
df = pd.DataFrame(temp, columns=['First', 'Second', 'Third', 'Fourth', 'Fifth'])
df_cut = df.iloc[10:]
keep = df_cut.loc[(df_cut['First'] < 0.5) & (df_cut['Second'] <= 0.6)]
new_indices_to_use = []
for item in keep.index:
remainder = (item % 5)
add = np.arange(0-remainder,5-remainder,1)
inds_to_use = item + add
new_indices_to_use.append(inds_to_use)
new_indices_to_use = [ind for sublist in new_indices_to_use for ind in sublist]
final_indices_to_use = []
for item in new_indices_to_use:
if item not in final_indices_to_use:
final_indices_to_use.append(item)
final = df_cut.iloc[final_indices_to_use]
来自Pandas关于^{} (emphasis mine)的文档:
您试图按标签使用它,这意味着您需要^{}
从你的例子来看:
相关问题 更多 >
编程相关推荐