Python 从特定索引中重新选择数据帧
我有一个数据帧,我想“重新选择”,因为没有更好的术语,使用索引Python 从特定索引中重新选择数据帧,python,pandas,Python,Pandas,我有一个数据帧,我想“重新选择”,因为没有更好的术语,使用索引 Column1 | Column2 | Column3 1 | 2 | 3 4 | 5 | 6 Data | | Header | Header2 | Header3 7 | 8 | 9 我想选择这个数据帧,但特别是在索引4,0处,这样它看起来像: Header | Header2 | Header3 7
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]]
但问题是,我并不总是知道该索引在每个数据帧中的位置,我唯一拥有的信息是我希望从中开始的值的索引。使用:
df[df["Column1"]=="Data"].index.item()
您将收到“数据”所在行位置的索引。从那里,您可以使用df.iloc来定位您要查找的数据。使用:
df[df["Column1"]=="Data"].index.item()
您将收到“数据”所在行位置的索引。在那里,您可以使用df.iloc来定位您要查找的数据。对于未来的旅行者,我最终以一种有点奇怪的方式完成了这项工作。首先,我得到了我感兴趣的专栏:
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行和第5行以外的所有数据(因为我不知道它在哪里结束),而0:2
是第1-3列
我不确定这是否是最好的方法,但它能满足我的需要。对于未来的旅行者,我最终以一种有点奇怪的方式完成了这项工作。首先,我得到了我感兴趣的专栏:
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行和第5行以外的所有数据(因为我不知道它在哪里结束),而0:2
是第1-3列
我不确定这是否是最好的方法,但它适用于我需要它做的事情。虽然这可以获得索引,但我已经有了索引。我需要从现有的数据框架中创建一个新的数据框架,以及新的列。虽然这样做可以获得索引,但我已经有了索引。我需要从现有的数据框中创建一个新的数据框,以及新的列。