python - 在 Python 中从 .dat 文件数据帧中读取
问题描述
我有一个.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")
任何建议将不胜感激
解决方案
由于您的帖子没有任何明确的问题,因此我必须根据您的代码进行猜测。我假设您想要得到的是在 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", :]
推荐阅读
- python-3.x - 使用 Boto3 和 Psycopg2 连接到 Redshift 数据库失败
- java - 如何按顺序初始化一个步骤?
- python-3.x - 如何检查(应用“if”条件)字典的“值”是否存在
- multithreading - wxPython,关闭大型机时出现运行时和断言错误
- javascript - 从 vuex 存储操作中传递对象
- ios - 如何在本机反应中获取更新的设备令牌?
- javascript - Javascript AJAX 未执行
- python - Cv2 说“找到相机”,即使它没有
- haskell - GHCI:测试套件的 ghc-options 覆盖库的 ghc-options
- python - 如何在 python Dataframe 中提高以下代码的性能,如果可能,请提及复杂性的顺序: