从 Python 中的 .dat 文件 Dataframe 中读取

Reading from a .dat file Dataframe in Python

我有一个 .dat 文件,如下所示....

#| step | Channel| Mode | Duration|Freq.| Amplitude | Phase| 
    0       1       AWG     Pi/2    100     2           1               
    1       1       SIN^2           100     1           1   
    2       1       SIN^2           200     0.5         1   
    3       1       REC     50      100     1           1               
    100     0       REC    Pi/2     150     1           1 

我创建了一个数据框,我想从该数据框中读取提取数据,但出现错误

TypeError: expected str, bytes or os.PathLike object, not DataFrame

我的代码在下面,

import pandas as pd
import numpy as np
path = "updated.dat"
datContent = [i.strip().split() for i in open(path).readlines()]
#print(datContent)
column_names = datContent.pop(0)
print(column_names)

df = pd.DataFrame(datContent)
print(df)
extract_column = df.iloc[:,2]


with open (df, 'r') as openfile :
    for line in openfile:
        for column_search in line:
            column_search = df.iloc[:,2]
            if "REC" in column_search:
                print ("Rec found")

如有任何建议,我们将不胜感激

由于你的post没有任何明确的问题,我只好根据你的代码来猜测。我假设你想要得到的是 在 DataFrame 中找到所有行,其中列 Mode 包含值 REC.

基于此,我准备了一个适用于您的数据的小型独立示例。

在你的情况下,你唯一应该使用的是最后一行。假设您的 DataFrame 已正确创建和填充,您下面的代码 print(df) 可以通过这一行进行交换。

我强烈建议您阅读有关从 DataFrames 中索引和选择数据的官方文档。 https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html

import pandas as pd
from io import StringIO

data = StringIO("""
no;step;Channel;Mode;Duration;Freq.;Amplitude;Phase
;0;1;AWG;Pi/2;100;2;1
;1;1;SIN^2;;100;1;1
;2;1;SIN^2;;200;0.5;1
;3;1;REC;50;100;1;1
;100;0;REC;Pi/2;150;1;1
""")
df = pd.read_csv(data, sep=";")


df.loc[df.loc[:, 'Mode'] == "REC", :]