使用Pandas筛选Excel选项卡

2024-06-06 19:03:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Pandas导入了一个Excel表格。该表包含四列,表示节点、X、Y和Z数据。我使用了以下脚本:

import pandas as pd
SolidFixity = pd.read_excel('GeomData.xlsx', sheetname = 'SurfaceFixitySolid')

接下来我要做的是使用filter表过滤这个dataframe来选择感兴趣的节点。我用了这个命令:

^{pr2}$

这不起作用,并引发以下错误:

ValueError: No axis named Nodes for object type

我知道有一个名为Nodes的轴,因为下面的命令:

In[17]SolidFixity.axes

输出如下:

Out[17]: 
[RangeIndex(start=0, stop=809, step=1),
 Index(['Nodes', 'X', 'Y ', 'Z'], dtype='object')]

节点就在那里,像太阳一样闪闪发光。在

我做错什么了?在


Tags: 数据import命令脚本pandasread节点object
1条回答
网友
1楼 · 发布于 2024-06-06 19:03:01

似乎您需要^{}或{a2}与mask by ^{}或与{}进行比较以获得精确匹配:

SolidFixity = pd.DataFrame({'Nodes':['797','sds','797 dsd','800','s','79785'],
                            'X':[5,3,6,9,2,4]})

print (SolidFixity)
     Nodes  X
0      797  5
1      sds  3
2  797 dsd  6
3      800  9
4        s  2
5    79785  4

a = SolidFixity[SolidFixity.Nodes.str.contains('797')]
print (a)
     Nodes  X
0      797  5
2  797 dsd  6
5    79785  4

b = SolidFixity[SolidFixity.Nodes == '797']
print (b)
  Nodes  X
0   797  5

b = SolidFixity.query("Nodes =='797'")
print (b)
 Nodes  X
0   797  5

^{}函数可能只有轴值:

axis : int or string axis name

The axis to filter on. By default this is the info axis, index for Series, columns for DataFrame

并通过参数likeregexitems返回所有列:

^{pr2}$
c = df.filter(items = ['797'], axis = 1)
#same as
#c = df.filter(items = ['797'], axis = 'columns')
print (c)
   797
0    1
1    3
2    5
3    7
4    1
5    0

相关问题 更多 >