我正在阅读一些文件,其中包含非固定长度的标题,并且不知道如何跳过"标题部分"直到感兴趣的数据出现。文件内容如下所示,我总是对行"Measurement values:"
之后的内容感兴趣,我可以以某种方式使用熊猫read_csv
的{{1}}参数,并结合使用一个搜索字符串,或类似的,以清除标题部分?
欢迎任何意见: - )
skiprows
答案 0 :(得分:1)
我不确定这是否是正确的方法。
<div class="btn-group">
<button class="btn btn-sm dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench"></i> <span class="caret"></span>
</button>
<ul class="dropdown-menu fa-pull-right">
<li>
<a href="@Url.Action("Edit", new { id = item.ID })">
<i class="fa fa-pencil"></i> Edit
</a>
</li>
<li>
<a id="DeleteBoard" data_number="@item.ID">
<i class="fa fa-trash"></i> Delete
</a>
</li>
<li>
<a href="@Url.Action("Details", new { Id = item.ID })">
<i class="fa fa-info-circle"></i> Details
</a>
</li>
</ul>
</div>
<强>输出:强>
import pandas as pd
df = pd.read_csv(r"filename.csv")
lineNumber = 0
for i, v in enumerate(df.to_string(index=False).split("\n"), 1):
if "Measurement values" in v:
lineNumber = i #Find line number of "Measurement values"
break
df = pd.read_csv(r"filename.csv", skiprows=lineNumber) #Read file again with lineNumber
print(df)
应该有解决方案而不读取文件两次。
答案 1 :(得分:1)
非常类似于Rakesh的答案,但没有阅读整个文件只是为了找到“测量值:”的行
import pandas as pd
file_name = r"filename.csv"
line_number = -1
with open(file_name, "r") as in_file:
for i, line in enumerate(in_file, 1):
if line.startswith("Measurement values:"):
lineNumber = i
break
if line_number == -1:
raise RuntimeError("Could not find end of header")
df = pd.read_csv(file_name, skiprows = line_number)
print(df)
答案 2 :(得分:0)
我在阅读excel时使用下面的内容跳过第一行,你可以为csv文件做同样的事情。
df = pandas.read_excel(excelFile, header=2)