从特定索引重新选择Pandas数据框

问题描述 投票:1回答:2

由于缺少更好的用词,我想使用索引来“重新选择”一个数据框。

Column1 | Column2 | Column3
   1    |    2    |    3
   4    |    5    |    6
Data    |         |  
Header  | Header2 | Header3
   7    |    8    |    9

我想选择此数据框,但要选择索引4,0,以便它看起来像:

Header  | Header2 | Header3
   7    |    8    |    9

我知道我可以做类似的事情

df.iloc[[4,5], [0,1,2]]

但是问题是我并不总是知道此索引在每个数据帧中的位置,我唯一拥有的信息是我想从中开始的值的索引。

python pandas
2个回答
0
投票

对于将来的旅行者,我最终以某种奇怪的方式完成了此操作。首先,我得到了我感兴趣的专栏:

columns = [x for x in df.iloc[4].values.flatten().tolist() if str(x) != 'nan']

然后我将需要的数据切成薄片:

data = df.iloc[5:, 0:2].values

最后创建了一个新的数据框:

df = pd.DataFrame(data, columns=columns)

我设置列的位置,4是列所在行的索引(我已经知道的数字)。设置数据时,5:表示第5行及以后的所有数据(因为我不知道它在哪里结束),0:2是第1-3列。

我不确定这是否是最好的方法,但是它可以满足我的需要。


0
投票

使用:

df[df["Column1"]=="Data"].index.item()

您将收到“数据”所在行的位置的索引。从那里可以使用df.iloc来查找所需的数据。

© www.soinside.com 2019 - 2024. All rights reserved.