簡體   English   中英

tsv 文件中的行到單獨的 arrays

[英]Rows from tsv file into separate arrays

我有一些動作捕捉數據,因此特定值與特定標記有關。 我想要做的是從這個 tsv 文件中只讀取特定的行和列,並將這些值放入 arrays 中。

我的數據 - t_0028.tsv 文件 - 如下所示:

在此處輸入圖像描述

我想要的是保留第 12 行以后的值,考慮到與標記對應的列(例如 ARIEL_01 X、ARIEL_01 Y、ARIEL_01 Z)。

所以所需的 output 將是: ARIEL_01_X = [##, ##, ##.. ]其中 # 是值。

我開始這樣做:

with open("t_0028.tsv") as fd:
    rd = csv.reader(fd, delimiter="\t")
    for row in rd:
        print(row[10:21])

但是 output 只是整個 tsv 文檔。 我還沒有考慮如何像我想要的那樣將它們放入 arrays 中,老實說,我不知道該怎么做,或者即使有可能。

任何幫助都會很棒!

假設您的輸入是一個 tsv 文件,並且它通過 Excel 的圖像是您所顯示的,您應該:

  • 跳過最初的 11 行
  • 僅考慮相關列

代碼可以是:

ARIEL_01_X = []
ARIEL_01_Y = []
ARIEL_01_Z = []
with open("t_0028.tsv") as fd:
    rd = csv.reader(fd, delimiter="\t")
    for i in range(11): _ = next(rd)           # skip initial lines
    for row in rd:
        ARIEL_01_X.append(row[3])              # only keep the relevant columns
        ARIEL_01_Y.append(row[4])
        ARIEL_01_Z.append(row[5])

使用Pandas,這很簡單,基本上就一行代碼:

import pandas as pd
df = pd.read_csv("t_0028.tsv", sep="\t", skiprows=10)
df['ARIEL_01 X'] 
# or 
df['ARIEL_01 X'].tolist()

如果您只想保留 dataframe 中的某些列,則可以將usecols=['Frame','ARIEL_01 X','ARIEL_01 Y','ARIEL_01 Z']之類的內容傳遞給read_csv方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM