如何使用pandas从Excel文件中读取特定行

6

我有一个Excel文件,需要从特定工作表的行中提取某些数据。目前我已经:

import pandas as pd
xl_file = pd.ExcelFile((xlfilePath)
dfs = {sheet_name: xl_file.parse(sheet_name) for sheet_name in xl_file.sheet_names} 

现在我想读取特定行中的数字值。该行的结构类似于:

Length (mm) 10.1 - 16.0 - 19.5 - 16.4 - 11.3

我想展示每个单元格中的内容,其中破折号表示单元格中没有值!如何使用pandas库读取这样的一行?我知道上面这一行的行数,但是Pandas是否可以浏览数据框并查找条目长度(mm)而不必指定行数?

编辑:如EdChum所建议的,实际的df.loc ['length(mm)']如下:

0              17.92377
Unnamed: 1          NaN
0.05           18.55764
Unnamed: 3          NaN
0.1            19.17039
Unnamed: 5          NaN
0.15            19.7507
Unnamed: 7          NaN
0.2            20.29776
Unnamed: 9          NaN
0.25           20.80492
Unnamed: 11         NaN
0.3             21.2667
Unnamed: 13         NaN
0.35           21.67687
Unnamed: 15         NaN
0.4            22.02884
Unnamed: 17         NaN
0.45            22.3156
Unnamed: 19         NaN
0.5            22.53051
Unnamed: 21         NaN
0.55           22.66691
Unnamed: 23         NaN
0.6            22.71949
Unnamed: 25         NaN
0.65           22.68477
Unnamed: 27         NaN
0.7            22.56162
Unnamed: 29         NaN
0.75           22.35258
Unnamed: 31         NaN
0.8            22.06432
Unnamed: 33         NaN
0.85            21.7079
Unnamed: 35         NaN
0.9            21.29801
Unnamed: 37         NaN
0.95           20.85419
Unnamed: 39         NaN
1                20.394
Name: length (mm), dtype: object

你能发布一下df的样子吗?你是说你的索引值是“Length (mm)”吗?如果是,那么df.loc['Length (mm)']不就可以了吗? - EdChum
@EdChum 是的,请查看我的编辑。如何将其加载到numpy数组中? - Dipole
如果你想从中得到一个np.array,则只需执行 df.loc ['length(mm)'].values - EdChum
哦,哇,太棒了,非常感谢! - Dipole
2个回答

2

加载数据框之后,您可以使用标签索引loc选择特定的行:

df.loc['length (mm)']

如果您想从中获取一个np.array,只需执行以下操作:
df.loc['length (mm)'].values

0

在读取文件时,您可以始终将列名以参数形式指定给数据框。

import pandas as pd
fields = ['employee_name']

d_frame = pd.read_csv('data_file.csv', skipinitialspace=True, usecols=fields)
# get the required key or column name
print(d_frame.keys())
# Get data from column name
print(d_frame.employee_name)

我假设 employee_name 是你想要提取值的列名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接