【问题标题】:Import data from .txt file and define x and y variables in Python从 .txt 文件导入数据并在 Python 中定义 x 和 y 变量
【发布时间】:2017-11-20 20:16:26
【问题描述】:

我是 Python 新手,我需要导入以空格分隔的数据。

数据看起来像这样:

Title one

Title two

Title three

Title four

 1.2944870E-03  7.1226442E-01

 3.8834610E-03  8.3775342E-01

 6.4724353E-03  1.0313828E+00

 9.0614092E-03  7.7915078E-01

 2.2006279E-02  1.1677371E+00

我需要在导入过程中跳过前 4 行。

到目前为止,我有这个:

# Get .txt file
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename(filetypes=[("Two Column txt","*.txt"),("Any text file","*.*")])

# Read the data
import pandas as pd
data = pd.read_csv(file_path,skiprows=4)

使用 pd.read_csv 导入后,数据为 [x_amount of rows, 1 column]。 我想知道是否有人可以告诉我如何将其分开并将第一列分配给 X 并将第二列分配给 Y

最好的问候!

【问题讨论】:

    标签: python pandas data-import


    【解决方案1】:

    由于您的文件是空格分隔的,因此您应该使用sep=' ' 覆盖默认的逗号分隔解析。为了提供您自己的标头,您可以使用headernames 参数:

    data = pd.read_csv(file_path, sep=' ', skiprows=8, header=None, names=['X','Y'])
    

    【讨论】:

    • 你好,你的行数据是这样出来的 ' X Y NaN 0.011650 NaN 0.685272 0.014239 NaN 0.725674 0.016828 NaN 0.747055 0.019417 NaN 0.848044'
    • @ManuelOliveira 你的输入文件是什么样的?它可能与您要跳过的前 4 行有关。我的示例适合您提供的示例。如果标题看起来不同,那么也许您应该在导入 Pandas 之前删除它们(例如使用tail -n +5 file_with_header.csv > file_without_header.csv
    【解决方案2】:

    我能够导入文件

    data = pd.read_csv(file_path, sep='\s+', skiprows=4, header=None, names=['X','Y'])

    然后我将变量分隔为:

    X=data['X'] Y=data['Y']

    感谢大家的帮助。

    【讨论】:

      猜你喜欢
      • 2017-11-18
      • 2013-08-12
      • 2022-11-19
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2017-02-16
      相关资源
      最近更新 更多