【发布时间】:2020-11-13 12:40:16
【问题描述】:
再次对不起。下面是我尝试读取的数据示例。
nhy, time, dt= 0 0.0000D+00 1.9416D-02
nhy, time, dt= 1 1.9400D-02 2.2416D-02
nhy, time, dt= 2 4.3800D-02 3.0416D-02
nhy, time, dt= 3 7.3540D-02 4.8416D-02
nhy, time, dt= 4 1.3350D-01 6.9416D-02
我正在尝试使用此代码提取 dt 列,
dt50 = []
file = "timestep.log"
col_list = ["dt"]
data = pd.read_csv(file, sep= '\s+|\t+|\s+\t+|\t+\s', skiprows = (30), usecols = col_list
dt50.extend(data['dt'])
print(dt50)
这一切都只返回 dt 列而不是实际值列。我猜这与我声明我想要的列有关,但不确定我哪里出错了。
很抱歉,由于我缺乏编码能力而打扰大家。
【问题讨论】:
-
您确定您的
csv文件格式正确吗?当您尝试运行它时,您给出的示例会引发错误,因为没有指定列。您的列应该是:nhy、time和dt? -
生成的日志文件中没有and。上面有一些信息,因此为什么我添加了“skiprows”命令,但我使用的数据是如上所示的输出。
-
是的,但是,当读取该数据时,您的代码会抛出
KeyError: "dt"。原始文件中有标题吗?当您说“...仅返回 dt 列而不是实际值列”时。你能提供一个你想要的例子吗? -
所以不是打印数据中的内容是 1.9416D-02、2.2416D-02、3.0416D-02 等的第三个数字列。它只是打印出 dt、dt、dt 等。所以如果你明白我的意思,它会读取列名而不是实际值的 dt。
-
是的,这是有道理的。我无法重现您获得的输出,因为您共享的代码会抛出
KeyError: "dt",因为没有“dt”列。您是否有机会与我们分享整个文件?
标签: python-3.x pandas csv